1995-02-18 01:27:10 +00:00
|
|
|
# The mpn functions need a #define for asm syntax flavor.
|
|
|
|
# Every i386 port in use uses gas syntax (I think).
|
Update.
1997-11-22 19:28 Ulrich Drepper <drepper@cygnus.com>
* iconv/gconv_simple.c: Fix lots of bugs.
* iconv/iconv_open.c: Normalize names before passing them to
__gconv_open.
* libio/iolibio.h: Add prototypes for _IO_{new,old}_fclose.
* libio/iopopen.c: Check for correct mode argument and punt otherwise.
* stdio-common/test-popen.c: Add test for above change.
* math/libm-test.c: Print test results also using %a format,
specified in PRINTF_XEXPR macro.
* math/test-double.c: Define PRINTF_XEXPR.
* math/test-float.c: Likewise.
* math/test-ldouble.c: Likewise.
* math/test-idouble.c: Likewise.
* math/test-ifloat.c: Likewise.
* math/test-ildoubl.c: Likewise.
* stdio-common/vfscanf.c: Recognize a in format specifier only as
modifier if used before s, S, or [. Otherwise it's the hexadecimal
FP number format.
* stdlib/strtod.c: Little code cleanup.
* sysdeps/i386/Makefile: Define __LIBC_INTERNAL_MATH_INLINES for
compiling in math subdir.
* sysdeps/m68k/fpu/e_acos.c: Define __LIBC_INTERNAL_MATH_INLINES
instead of __LIBC_M81_MATH_INLINES.
* sysdeps/m68k/fpu/e_atan2.c: Likewise.
* sysdeps/m68k/fpu/e_fmod.c: Likewise.
* sysdeps/m68k/fpu/e_pow.c: Likewise.
* sysdeps/m68k/fpu/e_scalb.c: Likewise.
* sysdeps/m68k/fpu/k_cos.c: Likewise.
* sysdeps/m68k/fpu/k_sin.c: Likewise.
* sysdeps/m68k/fpu/k_tan.c: Likewise.
* sysdeps/m68k/fpu/s_atan.c: Likewise.
* sysdeps/m68k/fpu/s_ccos.c: Likewise.
* sysdeps/m68k/fpu/s_ccosh.c: Likewise.
* sysdeps/m68k/fpu/s_cexp.c: Likewise.
* sysdeps/m68k/fpu/s_csin.c: Likewise.
* sysdeps/m68k/fpu/s_csinh.c: Likewise.
* sysdeps/m68k/fpu/s_frexp.c: Likewise.
* sysdeps/m68k/fpu/s_ilogb.c: Likewise.
* sysdeps/m68k/fpu/s_isinf.c: Likewise.
* sysdeps/m68k/fpu/s_llrint.c: Likewise.
* sysdeps/m68k/fpu/s_llrintf.c: Likewise.
* sysdeps/m68k/fpu/s_llrintl.c: Likewise.
* sysdeps/m68k/fpu/s_lrint.c: Likewise.
* sysdeps/m68k/fpu/s_modf.c: Likewise.
* sysdeps/m68k/fpu/s_remquo.c: Likewise.
* sysdeps/m68k/fpu/s_scalbn.c: Likewise.
* sysdeps/m68k/fpu/s_sincos.c: Likewise.
* sysdeps/m68k/fpu/bits/mathinline.h: Define optimizations if
__LIBC_INTERNAL_MATH_INLINES is defined.
* sysdeps/i386/fpu/bits/mathinline.h: Define special i686 versions
of compare macros from ISO C 9X. Optimize generic versions a bit.
Define __signbit inline functions and __ieee754_sqrt which can be
used if the ompiler is fixed.
* sysdeps/posix/sysv_signal.c: Define sysv_signal as weak alias.
1997-11-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makerules ($(common-objpfx)stub-$(subdir)): Look for
sysdeps/generic in the whole dep file, not only in the first line.
1997-11-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/ieee754/bits/nan.h (__nan) [!__GNUC__]: Fix type.
1997-11-19 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Imaginary Unit): Move @end deftypevr to right
place.
1997-11-19 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/dl-error.c (_dl_signal_error): Only print colon if OBJNAME
is non-empty.
1997-11-20 16:51 Ulrich Drepper <drepper@cygnus.com>
* malloc/malloc.c (malloc_update_mallinfo): Initialize struct for
return value.
1997-11-19 21:36 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/getcwd.c: Free allocated buffer if
readlink succeeds but the return value is too long.
* stdio-common/printf_fphex.c: Determine sign of number correctly.
1997-11-19 02:45 Ulrich Drepper <drepper@cygnus.com>
* libc.map: Export __divl, __reml, __divq, __remq, __divqu and
__remqu for Alpha.
1997-11-18 23:08 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/sys/ucontext.h: Stub context file.
* libio/iofprintf.c: Removed. We use the stdio-common version.
* manual/Makefile (distribute): Add stdio-fp.c.
* sysdeps/powerpc/Dist: Add ppc-mcount.S.
* db2/Makefile (distribute): Add include/os_func.h, README and
mutex/tsl_parisc.s.
* hesiod/Makefile (distribute): Add README.hesiod.
1997-11-18 22:14 Ulrich Drepper <drepper@cygnus.com>
* iconv/gconv.c: Correctly call transformation function.
* manual/maint.texi: Document need of binutils 2.8.1.0.17.
1997-11-13 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_remquo.c (__remquo): Fix function (gave
wrong results for e.g. remquo (3,2, &x)).
* sysdeps/libm-ieee754/s_remquof.c (__remquof): Likewise.
* sysdeps/libm-ieee754/s_remquol.c (__remquol): Likewise.
1997-11-18 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* configure.in (ld --version-script): Test if the same symbol
maybe defined in all versions (needed by recent changes to
libc.map and supported with binutils 2.8.1.0.17) and issue warning
if versioning is not supported/enabled.
(bash test): Correct test case.
* math/libm-test.c: Added counting/reporting of number of test cases.
* elf/Makefile ($(objpfx)rtldtbl.h): gawk is not longer required,
use awk instead.
* sysdeps/unix/sysv/linux/net/if.h: Add __BEGIN_DECLS/__END_DECLS.
1997-11-18 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* elf/dl-load.c (_dl_init_paths): Correct __mempcpy logic.
1997-11-18 18:04 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/pty.c: Define REVOKE to use revoke function.
Replace revoke call by use of REVOKE.
* sysdeps/unix/sysv/linux/pty.c: New file. Define REVOKE as
empty and #include generic version.
Suggested by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-11-18 16:02 Ulrich Drepper <drepper@cygnus.com>
* libc.map: Add socket functions with __libc_* names.
Reported by Andreas Jaeger.
1997-11-18 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* libc.map: Tidy up (remove duplicates, sort entries).
1997-11-18 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* iconv/gconv.h: Add __BEGIN_DECLS/__END_DECLS.
1997-11-18 06:45 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/pty.c: Make thread safe. Fix bug when calling
again after successful call.
Patch by Marc Lehmann <pcg@goof.com>.
1997-11-17 Paul Eggert <eggert@twinsun.com>
* time/mktime.c, time/strftime.c (_REENTRANT): #define,
as some hosts need this to declare localtime_r properly.
1997-11-18 06:08 Ulrich Drepper <drepper@cygnus.com>
* libc.map: Add iconv_open, iconv, and iconv_close.
1997-11-22 18:49:27 +00:00
|
|
|
asm-CPPFLAGS += -DGAS_SYNTAX
|
1996-06-05 03:29:45 +00:00
|
|
|
|
|
|
|
# The i386 `long double' is a distinct type we support.
|
|
|
|
long-double-fcts = yes
|
1996-12-22 00:32:43 +00:00
|
|
|
|
2015-08-19 11:27:04 +00:00
|
|
|
ifeq ($(subdir),string)
|
|
|
|
sysdep_routines += cacheinfo
|
|
|
|
endif
|
|
|
|
|
1997-03-21 20:00:48 +00:00
|
|
|
ifeq ($(subdir),gmon)
|
|
|
|
sysdep_routines += i386-mcount
|
|
|
|
endif
|
|
|
|
|
1996-12-22 00:32:43 +00:00
|
|
|
ifeq ($(subdir),elf)
|
1997-02-15 02:32:58 +00:00
|
|
|
CFLAGS-rtld.c += -Wno-uninitialized -Wno-unused
|
1997-01-28 03:59:29 +00:00
|
|
|
CFLAGS-dl-load.c += -Wno-unused
|
|
|
|
CFLAGS-dl-reloc.c += -Wno-unused
|
1996-12-22 00:32:43 +00:00
|
|
|
endif
|
2003-09-17 08:47:44 +00:00
|
|
|
|
|
|
|
# Most of the glibc routines don't ever call user defined callbacks
|
|
|
|
# nor use any FPU or SSE* and as such don't need bigger %esp alignment
|
|
|
|
# than 4 bytes.
|
|
|
|
# Lots of routines in math will use FPU, so make math subdir an exception
|
|
|
|
# here.
|
2011-07-16 10:10:06 +00:00
|
|
|
# In gcc 4.6 (and maybe earlier?) giving -mpreferred-stack-boundary=2 is
|
|
|
|
# an error, so don't try to reduce it here like we used to. We still
|
|
|
|
# explicit set -mpreferred-stack-boundary=4 the places where it matters,
|
|
|
|
# in case an older compiler defaulted to 2.
|
2003-09-17 08:47:44 +00:00
|
|
|
ifeq ($(subdir),math)
|
|
|
|
sysdep-CFLAGS += -mpreferred-stack-boundary=4
|
|
|
|
else
|
|
|
|
ifeq ($(subdir),csu)
|
|
|
|
sysdep-CFLAGS += -mpreferred-stack-boundary=4
|
2015-07-07 12:23:24 +00:00
|
|
|
gen-as-const-headers += link-defines.sym
|
2003-09-17 08:47:44 +00:00
|
|
|
else
|
|
|
|
# Likewise, any function which calls user callbacks
|
|
|
|
uses-callbacks += -mpreferred-stack-boundary=4
|
2003-09-17 09:39:59 +00:00
|
|
|
# Likewise, any stack alignment tests
|
|
|
|
stack-align-test-flags += -malign-double -mpreferred-stack-boundary=4
|
2003-09-17 08:47:44 +00:00
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
# And a couple of other routines
|
|
|
|
ifeq ($(subdir),stdlib)
|
|
|
|
CFLAGS-exit.c += -mpreferred-stack-boundary=4
|
2011-01-13 01:59:32 +00:00
|
|
|
CFLAGS-cxa_finalize.c += -mpreferred-stack-boundary=4
|
2003-09-17 08:47:44 +00:00
|
|
|
endif
|
|
|
|
ifeq ($(subdir),elf)
|
|
|
|
CFLAGS-dl-init.c += -mpreferred-stack-boundary=4
|
|
|
|
CFLAGS-dl-fini.c += -mpreferred-stack-boundary=4
|
|
|
|
CFLAGS-dl-open.c += -mpreferred-stack-boundary=4
|
|
|
|
CFLAGS-dl-close.c += -mpreferred-stack-boundary=4
|
|
|
|
CFLAGS-dl-error.c += -mpreferred-stack-boundary=4
|
|
|
|
endif
|
|
|
|
ifeq ($(subdir),dlfcn)
|
|
|
|
CFLAGS-dlopen.c += -mpreferred-stack-boundary=4
|
|
|
|
CFLAGS-dlopenold.c += -mpreferred-stack-boundary=4
|
|
|
|
CFLAGS-dlclose.c += -mpreferred-stack-boundary=4
|
|
|
|
CFLAGS-dlerror.c += -mpreferred-stack-boundary=4
|
|
|
|
endif
|
2005-01-26 02:05:49 +00:00
|
|
|
|
|
|
|
ifneq (,$(filter -mno-tls-direct-seg-refs,$(CFLAGS)))
|
|
|
|
defines += -DNO_TLS_DIRECT_SEG_REFS
|
|
|
|
endif
|
Introduce TLS descriptors for i386 and x86_64.
* include/inline-hashtab.h: New file, copied from 2005's
libiberty, with fix for memory leak imported afterwards by
Glauber de Oliveira Costa.
* elf/tlsdeschtab.h: New file.
* elf/dl-reloc.c (_dl_try_allocate_static_tls): Extract from...
(_dl_allocate_static_tls): ... here. Rearrange failure path.
(CHECK_STATIC_TLS): Move to...
* elf/dynamic-link.h: ... this file.
(TRY_STATIC_TLS): New macro.
* elf/dl-conflict.c (CHECK_STATIC_TLS, TRY_STATIC_TLS): Override.
* elf/elf.h (R_386_TLS_GOTDESC, R_386_TLS_DESC_CALL,
R_386_TLS_DESC): Define.
(R_X86_64_PC64, R_X86_GOTOFF64, R_X86_64_GOTPC32): Merge from
binutils.
(R_X86_64_GOTPC32_TLSDESC, R_X86_64_TLSDESC_CALL,
R_X86_64_TLSDESC): Define.
(R_386_NUM, R_X86_64_NUM): Adjust.
* sysdeps/i386/Makefile (sysdep-dl-routines, sysdep_routines,
systep-rtld-routines): Add tlsdesc and dl-tlsdesc for elf subdir.
(gen-as-const-headers): Add tlsdesc.sym to csu subdir.
* sysdeps/i386/dl-lookupcfg.h: New file. Introduce _dl_unmap to
release tlsdesc_table.
* sysdeps/i386/dl-machine.h: Include dl-tlsdesc.h.
(elf_machine_type_class): Mark R_386_TLS_DESC as PLT class.
(elf_machine_rel): Handle R_386_TLS_DESC.
(elf_machine_rela): Likewise.
(elf_machine_lazy_rel): Likewise.
(elf_machine_lazy_rela): Likewise.
* sysdeps/i386/dl-tls.h (struct dl_tls_index): Name it.
* sysdeps/i386/dl-tlsdesc.S: New file.
* sysdeps/i386/dl-tlsdesc.h: New file.
* sysdeps/i386/tlsdesc.c: New file.
* sysdeps/i386/tlsdesc.sym: New file.
* sysdeps/i386/bits/linkmap.h (struct link_map_machine): Add
tlsdesc_table.
* sysdeps/x86_64/Makefile (sysdep-dl-routines, sysdep_routines,
systep-rtld-routines): Add tlsdesc and dl-tlsdesc for elf subdir.
(gen-as-const-headers): Add tlsdesc.sym to csu subdir.
* sysdeps/x86_64/dl-lookupcfg.h: New file. Introduce _dl_unmap to
release tlsdesc_table.
* sysdeps/x86_64/dl-machine.h: Include dl-tlsdesc.h.
(elf_machine_runtime_setup): Set up lazy TLSDESC GOT entry.
(elf_machine_type_class): Mark R_X86_64_TLSDESC as PLT class.
(elf_machine_rel): Handle R_X86_64_TLSDESC.
(elf_machine_rela): Likewise.
(elf_machine_lazy_rel): Likewise.
* sysdeps/x86_64/dl-tls.h (struct dl_tls_index): Name it.
(__tls_get_addr): Do not declare for non-shared compiles.
* sysdeps/x86_64/dl-tlsdesc.S: New file.
* sysdeps/x86_64/dl-tlsdesc.h: New file.
* sysdeps/x86_64/tlsdesc.c: New file.
* sysdeps/x86_64/tlsdesc.sym: New file.
* sysdeps/x86_64/bits/linkmap.h (struct link_map_machine): Add
tlsdesc_table for both 32- and 64-bit structs.
2008-05-13 05:41:30 +00:00
|
|
|
|
|
|
|
ifeq ($(subdir),elf)
|
|
|
|
sysdep-dl-routines += tlsdesc dl-tlsdesc
|
2015-07-07 12:09:16 +00:00
|
|
|
|
|
|
|
tests += tst-audit3
|
|
|
|
modules-names += tst-auditmod3a tst-auditmod3b
|
|
|
|
|
|
|
|
$(objpfx)tst-audit3: $(objpfx)tst-auditmod3a.so
|
|
|
|
$(objpfx)tst-audit3.out: $(objpfx)tst-auditmod3b.so
|
|
|
|
tst-audit3-ENV = LD_AUDIT=$(objpfx)tst-auditmod3b.so
|
Introduce TLS descriptors for i386 and x86_64.
* include/inline-hashtab.h: New file, copied from 2005's
libiberty, with fix for memory leak imported afterwards by
Glauber de Oliveira Costa.
* elf/tlsdeschtab.h: New file.
* elf/dl-reloc.c (_dl_try_allocate_static_tls): Extract from...
(_dl_allocate_static_tls): ... here. Rearrange failure path.
(CHECK_STATIC_TLS): Move to...
* elf/dynamic-link.h: ... this file.
(TRY_STATIC_TLS): New macro.
* elf/dl-conflict.c (CHECK_STATIC_TLS, TRY_STATIC_TLS): Override.
* elf/elf.h (R_386_TLS_GOTDESC, R_386_TLS_DESC_CALL,
R_386_TLS_DESC): Define.
(R_X86_64_PC64, R_X86_GOTOFF64, R_X86_64_GOTPC32): Merge from
binutils.
(R_X86_64_GOTPC32_TLSDESC, R_X86_64_TLSDESC_CALL,
R_X86_64_TLSDESC): Define.
(R_386_NUM, R_X86_64_NUM): Adjust.
* sysdeps/i386/Makefile (sysdep-dl-routines, sysdep_routines,
systep-rtld-routines): Add tlsdesc and dl-tlsdesc for elf subdir.
(gen-as-const-headers): Add tlsdesc.sym to csu subdir.
* sysdeps/i386/dl-lookupcfg.h: New file. Introduce _dl_unmap to
release tlsdesc_table.
* sysdeps/i386/dl-machine.h: Include dl-tlsdesc.h.
(elf_machine_type_class): Mark R_386_TLS_DESC as PLT class.
(elf_machine_rel): Handle R_386_TLS_DESC.
(elf_machine_rela): Likewise.
(elf_machine_lazy_rel): Likewise.
(elf_machine_lazy_rela): Likewise.
* sysdeps/i386/dl-tls.h (struct dl_tls_index): Name it.
* sysdeps/i386/dl-tlsdesc.S: New file.
* sysdeps/i386/dl-tlsdesc.h: New file.
* sysdeps/i386/tlsdesc.c: New file.
* sysdeps/i386/tlsdesc.sym: New file.
* sysdeps/i386/bits/linkmap.h (struct link_map_machine): Add
tlsdesc_table.
* sysdeps/x86_64/Makefile (sysdep-dl-routines, sysdep_routines,
systep-rtld-routines): Add tlsdesc and dl-tlsdesc for elf subdir.
(gen-as-const-headers): Add tlsdesc.sym to csu subdir.
* sysdeps/x86_64/dl-lookupcfg.h: New file. Introduce _dl_unmap to
release tlsdesc_table.
* sysdeps/x86_64/dl-machine.h: Include dl-tlsdesc.h.
(elf_machine_runtime_setup): Set up lazy TLSDESC GOT entry.
(elf_machine_type_class): Mark R_X86_64_TLSDESC as PLT class.
(elf_machine_rel): Handle R_X86_64_TLSDESC.
(elf_machine_rela): Likewise.
(elf_machine_lazy_rel): Likewise.
* sysdeps/x86_64/dl-tls.h (struct dl_tls_index): Name it.
(__tls_get_addr): Do not declare for non-shared compiles.
* sysdeps/x86_64/dl-tlsdesc.S: New file.
* sysdeps/x86_64/dl-tlsdesc.h: New file.
* sysdeps/x86_64/tlsdesc.c: New file.
* sysdeps/x86_64/tlsdesc.sym: New file.
* sysdeps/x86_64/bits/linkmap.h (struct link_map_machine): Add
tlsdesc_table for both 32- and 64-bit structs.
2008-05-13 05:41:30 +00:00
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(subdir),csu)
|
|
|
|
gen-as-const-headers += tlsdesc.sym
|
|
|
|
endif
|
2015-08-26 14:55:42 +00:00
|
|
|
|
|
|
|
# Make sure no code in ld.so uses mm/xmm/ymm/zmm registers on i386 since
|
|
|
|
# the first 3 mm/xmm/ymm/zmm registers are used to pass vector parameters
|
|
|
|
# which must be preserved.
|
2016-04-03 04:55:25 +00:00
|
|
|
# With SSE disabled, ensure -fpmath is not set to use sse either.
|
2016-12-26 09:08:48 +00:00
|
|
|
rtld-CFLAGS += -mno-sse -mno-mmx -mfpmath=387
|
2016-07-18 22:16:11 +00:00
|
|
|
ifeq ($(subdir),elf)
|
2015-08-26 14:55:42 +00:00
|
|
|
CFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
|
2016-07-18 22:16:11 +00:00
|
|
|
$(rtld-CFLAGS))
|
2015-08-26 14:55:42 +00:00
|
|
|
|
|
|
|
tests-special += $(objpfx)tst-ld-sse-use.out
|
|
|
|
$(objpfx)tst-ld-sse-use.out: ../sysdeps/i386/tst-ld-sse-use.sh $(objpfx)ld.so
|
|
|
|
@echo "Checking ld.so for SSE register use. This will take a few seconds..."
|
|
|
|
$(BASH) $< $(objpfx) '$(NM)' '$(OBJDUMP)' '$(READELF)' > $@; \
|
|
|
|
$(evaluate-test)
|
2016-07-18 22:16:11 +00:00
|
|
|
else
|
|
|
|
CFLAGS-.os += $(if $(filter rtld-%.os,$(@F)), $(rtld-CFLAGS))
|
2015-08-26 14:55:42 +00:00
|
|
|
endif
|