This patch scratches an itch. Each individual gcc command in the
glibc build is over 1K, which means it takes up a good chunk of my
terminal. Most of that is include paths. Any version of GCC new
enough to build glibc supports response files, which were added in
2005. So use a response file for the static list of include paths.
Now the build commands are a lot shorter, and easier to use when
developing glibc.
2009-05-06 Ryan S. Arnold <rsa@us.ibm.com>
[BZ #10118]
* Makeconfig (+asflags): New variable based upon ASFLAG or
asflags-cpu.
(ASFLAGS): Add override to set ASFLAGS to +asflags.
* config.make.in (asflags-cpu): Add variable based upon
@libc_cv_cc_submachine@ to propagate -mcpu=CPU from --with-cpu=CPU to
the assembler.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/power6/fpu/setcontext.S:
Remove unneeded file now that the assembler emits _ARCH_PWR6 and
recognizes power6 instruction set due to passing -mcpu=power6 from
--with-cpu=power6 when compiling .S files.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/power6/fpu/swapcontext.S:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/power6/fpu/setcontext.S:
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/power6/fpu/swapcontext.S:
Likewise.
(_dl_lookup_symbol_x): Rename hash to old_hash and don't compute
value here. Compute new-style hash value. Pass new hash value
and reference to variable with the old value to do_lookup_x.
(_dl_setup_hash): If DT_GNU_HASH is defined, use it and not
old-style hash table.
(_dl_debug_bindings): Pass new hash value and reference to variable
with the old value to do_lookup_x.
* elf/do-lookup.h (do_lookup_x): Accept additional parameter with
new-style hash value and change old-style hash value parameter to
be a reference. Reoganize functions to determine whether
new-style hash table is available. Only fall back on old-style
table. If old-style hash value is needed, compute it here.
* elf/dynamic-link.h (elf_get_dynamic_info): Relocate DT_GNU_HASH
entry.
* elf/elf.h: Define SHT_GNU_HASH, DT_GNU_HASH, DT_TLSDEC_PLT,
DT_TLSDEC_GOT. Adjust DT_ADDRNUM.
* include/link.h (struct link_map): Add l_gnu_bitmask_idxbits,
l_gnu_shift, l_gnu_bitmask, l_gnu_buckets and l_gnu_chain_zero.
* Makeconfig: If linker supports --hash-style option add it to all
linker command lines to build DSOs.
* config.make.in: Define have-hash-style.
* configure.in: Test whether linker supports --hash-style option.
* elf/dl-misc.c (_dl_name_match_p): Make MAP parameter const.
* sysdeps/generic/ldsodefs.h: Adjust prototype.
* Makeconfig (sysdeps-srcdirs): New variable.
(sysdeps-add-ons-srcdirs): Use it.
* csu/Makefile (all-Banner-files): Use it.
* Makefile (dist-selector): New variable.
(glibc-%.tar rule): Use it. Make $(dist-separate) tarballs
contain one version-named directory.
($(all-subdirs-targets)): Use it in place of -C option.
* Rules: Use $(..) instead of ../ if it's already defined.
* Makeconfig (subdir-srcdirs): New variable.
* csu/Makefile (all-Banner-files): Use it.
* configure.in (--enable-add-ons): Set to "yes" by default.
Handle absolute add-on directory names when looking for configure
fragments. Also look for sysdeps/*/preconfigure fragments in add-ons.
Require add-on configure to set $libc_add_on_canonical, use
that in $add_ons_sfx. Substitute add_on_subdirs with computed list
of subdir names each add-on configure set in libc_add_on_subdirs.
* configure: Regenerated.
* Makefile (%/preconfigure: %/preconfigure.in): New pattern rule.
* config.make.in (add-on-subdirs): New substituted variable.
* Makeconfig (all-subdirs): Include $(add-on-subdirs).
Remove $(add-ons), $(sysdep-subdirs).
Don't filter out $(sysdep-inhibit-subdirs).
($(common-objpfx)sysd-dirs): Target removed. Don't include it.
($(common-objpfx)sysd-sorted): Rewritten to feed Depend and Subdirs
files together to gen-sorted.awk, and $(subdirs) via -v.
(subdirs): Remove magic reordering for mach and hurd.
* scripts/gen-sorted.awk: Use subdirs from command line.
Process Subdirs and Depend files directly.
Let Subdirs files use "first dir" and "inhibit dir".
Always move elf to the end of the list.
* hurd/Depend: New file.
* sysdeps/mach/Subdirs: Use "first mach".
* Makefile (dist-separate): Remove linuxthreads.
(dist-separate-linuxthreads): Variable removed.
(glibc-%.tar rule): Use $(sysdeps-add-ons).
* Makerules ($(common-objpfx)Versions.v.i): Use $(subdirs),
not $(all-subdirs).
(sysdep-makefiles): Use $(sysdirs).
(sysdirs): Remove export.
($(+sysdir_pfx)sysd-rules): Handle absolute directory names in
$(config-sysdirs).
(+sysdir_pfx): Variable removed.
(sysd-rules): Use $(common-objpfx) in place of it.
(sysdirs): Variable moved to ...
* Makeconfig (sysdirs): ... here.
Handle absolute directory names in $(config-sysdirs).
(full_config_sysdirs): Variable removed.
* csu/Makefile: Use $(sysdirs) in vpath directive.
* math/Makefile (ulps-file): Use $(sysdirs).
* sysdeps/gnu/Makefile (errlist-c): Likewise.
($(objpfx)errlist-compat.c): Likewise.
* Makeconfig (all-Subdirs-files): Likewise.
($(common-objpfx)config.status): Likewise.
* configure.in (sysnames): Handle absolute add-on directory names.
(sysdeps_add_ons): New variable, AC_SUBST it.
Compute which add-ons contributed sysdeps directories.
* configure: Regenerated.
* config.make.in (sysdeps-add-ons): New substituted variable.
* Makerules (+sysdep_dirs, +sysdep-includes): Variables moved ...
* Makeconfig: ... to here.
(+sysdep_dirs): Append $(sysdeps-add-ons) here.
(+includes): Remove $(objpfx) include, already in $(+sysdep_dirs).
Remove $(includes).
(sysdep-makeconfigs): Use $(+sysdep_dirs).
($(common-objpfx)shlib-versions.v.i): Likewise.
* Makeconfig: Remove hair to set Makeconfig-add-on.
* sysdeps/unix/Makefile (sysdirs): Remove export.
(asm_CPP): Variable removed.
($(common-objpfx)sysd-syscalls): Pass them directly for the script.
* sysdeps/posix/Makefile: New file.
* Makerules (L_tmpnam, TMP_MAX, L_ctermid, L_cuserid): Set non-posix
values here with ?=.
* stdlib/gen-mpn-copy: File removed.
* stdlib/Makefile (distribute): Remove it.
* configure.in: Don't grok --with-gmp.
* configure: Regenerated.
* configure.in (libc_cv_idn): Don't check it; libidn/configure does it.
* configure: Regenerated.
* bare: Directory removed, saved in ports repository.
are not understood by the C++ compiler.
* Makerules: Add rules to build C++ code for test cases.
* include/stdlib.h: Protect for inclusion in C++ code.
* include/time.h: Likewise.
* test-skeleton.c (timeout_handler): Rewrite ts initialization for
C++ compatibility.
* sysdeps/generic/bits: Subdirectory and all files moved to ...
* bits: ... here, new subdirectory.
* Makeconfig (+includes): Reordered includes to put build and sysdeps
dirs first after $(..)include, $(sysincludes) last.
* sysdeps/generic/bits: Subdirectory and all files moved to ...
* bits: ... here, new subdirectory.
* Makeconfig (+includes): Reordered includes to put build and sysdeps
dirs first after $(..)include, $(sysincludes) last.
sysdeps/.../machine/CPU subdirs, and give error if none are found.
* configure: Regenerated.
* config.make.in (with-cpu): New substituted variable.
* Makeconfig (+cflags): Add -mcpu=$(with-cpu) if set.
* Makefile (installed-stubs): New variable.
Set to $(inst_includedir)/gnu/stubs.h if $(biarch) is no,
or to $(inst_includedir)/gnu/stubs-$(biarch).h if otherwise.
[$(biarch) != no] (install-others-nosubdir): Add $(installed-stubs).
($(inst_includedir)/gnu/stubs.h): Use $(installed-stubs) for this
rule's target.
($(inst_includedir)/gnu/stubs.h): New target, install from ...
* include/stubs-biarch.h: New file.
* shlib-versions (i.86-.*-.*): Add WORDSIZE64 line mapping to x86_64.
* Makeconfig ($(common-objpfx)soversions.mk): Depend on Makeconfig.
Emit defn for variable `biarch'.
* include/stub-tag.h: Update comment.
2005-02-10 Roland McGrath <roland@redhat.com>
[BZ #632]
* scripts/soversions.awk: Expect cpu, vendor, os as separate variables
from command line.
Grok shlib-versions lines with WORDSIZE* in second column.
Add new leading column to output, DEFAULT for existing output lines.
Also emit lines with WORDSIZE* for alternate configurations.
* Makeconfig ($(common-objpfx)soversions.i): Pass those variables.
($(common-objpfx)soversions.mk): Grok new column, use only DEFAULT.
($(common-objpfx)gnu/lib-names.stmp): Depend on soversions.i instead
of soversions.mk; replace inline shell script with use of ...
* scripts/lib-names.awk: New file. If input has non-DEFAULT lines,
emit multiple sets of macros under #if.
* shlib-versions (x86_64-.*-.*): Add WORDSIZE32 line mapping to i686.
(s390x-.*-.*): Likewise for s390.
(powerpc64-.*-.*): Likewise for powerpc.
(sparc64-.*-.*): Likewise for sparc.
($(objpfx)nscd): Use that instead of selinux-LIBS.
* Makeconfig (link-extra-libs): Define just as $(LDLIBS-$(@F)).
(link-extra-libs-static): Define to $(link-extra-libs).
(link-extra-libs-bounded): Likewise.
2004-09-08 H.J. Lu <hongjiu.lu@intel.com>
* Makeconfig (libunwind): New.
(libgcc_eh): Add $(libunwind).
(gnulib): Always set to -lgcc $(libgcc_eh).
(static-gnulib): Always set to -lgcc -lgcc_eh $(libunwind).
(libc.so-gnulib): New.
* Makerules (LDLIBS-c.so): Use $(libc.so-gnulib) instead of
$(static-gnulib).
* configure.in (libc_cv_cc_with_libunwind): Set to yes if gcc
uses -lunwind for static binaries.
$(config-sysdirs) for shlib-versions files.
* Makeconfig ($(common-objpfx)soversions.i): Replace shell loop with
use of ...
* scripts/soversions.awk: ... this new file. Collect lib info and
match any DEFAULT line before emitting anything, so DEFAULT can come
later in the concatenation of shlib-versions files.
Fix typo: $(add_ons) -> $(add-ons).
(Makeconfig-add-on): New variable. When doing $(sysdep-makeconfigs)
include, use black magic to get it set to an add-on's name during the
include of the add-on's Makeconfig.
* configure.in: Use variable name `libc_add_on' when sourcing add-on
configure fragments, so they can refer to this.
* configure: Regenerated.
after AC_CANONICAL_HOST and default setting of $machine et al.
Don't set $subdirs from $add_ons.
Instead, source add-on/configure fragments early on.
(base_machine): If it's already set, don't set it based on $machine.
(libc_config_ok): New variable, set to no. If an add-on fragment sets
it to yes, skip the tuple sanity check as if --enable-hacker-mode.
(sysnames): Try appending add-on names after machine as well.
* configure: Regenerated.
* config.make.in (add-ons): Set from @add_ons@ instead of @subdirs@.
* Makeconfig ($(common-objpfx)config.status): Also depend on configure
files in $(add_ons) dirs.
* sysdeps/unix/sysv/linux/bits/in.h (struct ip_mreq): Remove
definition, now in netinet/in.h proper.
long. Rewrite example code so that it takes into account l64a output
* Makeconfig ($(common-objpfx)shlib-versions.v.i): Move top-level
$(..)shlib-versions file to last in deps list. This lets add-ons give
more-specific matches that override defaults in the top-level file.
* sysdeps/unix/sysv/linux/configure.in: If arch_minimum_kernel was
already set, don't set it or libc_cv_gcc_unwind_find_fde.
* sysdeps/unix/sysv/linux/configure: Regenerated.
2004-03-30 H.J. Lu <hongjiu.lu@intel.com>
* Makeconfig (link-libc-static): Use $(static-gnulib) instead
of $(gnulib).
(libgcc_eh): New variable.
(gnulib): Use it variable.
(static-gnulib): New variable.
* Makerules (LDLIBS-c.so): Use $(static-gnulib) instead of $(gnulib).
* config.make.in (have-as-needed): New variable.
* configure.in: Check if linker supports --as-needed.
2003-09-15 Jakub Jelinek <jakub@redhat.com>
* sysdeps/i386/Makefile (sysdep-CFLAGS): If not in math or csu
subdir, add -mpreferred-stack-boundary=4, with few exceptions.
2003-09-17 Jakub Jelinek <jakub@redhat.com>
* Makeconfig (stack-align-test-flags): Set.
* stdlib/Makefile (CFLAGS-tst-bsearch.c): Add
$(stack-align-test-flags).
* stdlib/tst-bsearch.c: Include tst-stack-align.h.
(align_check): New var.
(comp): Use TEST_STACK_ALIGN macro.
(do_test): Fail if align_check != 1.
* sysdeps/generic/tst-stack-align.h: New file.
* sysdeps/i386/i686/Makefile (stack-align-test-flags): Add -msse.
* sysdeps/i386/i686/tst-stack-align.h: New file.
* configure.in: New check for -g on .S files.
* configure: Regenerated.
* config.make.in (have-cpp-asm-debuginfo): New variable.
* config.h.in (HAVE_CPP_ASM_DEBUGINFO): New #undef.
* Makeconfig (ASFLAGS): New variable, if undefined and
$(have-cpp-asm-debuginfo), take options matching -g% from $(CFLAGS).
* Makerules (compile.S, COMPILE.S): Use $(ASFLAGS).
* config.make.in (includedir): New variable, substituted by configure.
Reported missing by Jocelyn Fournier <joc@presence-pc.com>.
* Makeconfig (includedir): Use $(prefix), not $(exec_prefix).
instead of += to append, to be sure $(lib) gets expanded at defn time.
(libof-$(cpp-src)): New variable, define this instead.
* extra-lib.mk (cpp-srcs-left): Reduce duplication in include setup.
(lib): Don't use override.
(CPPFLAGS-$(lib)): New variable, put -D's here.
* Makeconfig (CPPFLAGS): Use basename fn for CPPFLAGS-basename.
Also add $(CPPFLAGS-LIB) before the file-specific flags, for each
LIB found by $(libof-*) for basename, target, or source.
* Makerules (CPPFLAGS-nonlib): New variable.
* nscd/Makefile (lib): Set to nonlib when using cppflags-iterator.mk.
* locale/Makefile (lib): Likewise.
* sunrpc/Makefile (lib): Likewise.
* sysdeps/unix/sysv/linux/fpathconf.c (LINUX_LINK_MAX): Move macro ...
* sysdeps/unix/sysv/linux/linux_fsinfo.h (LINUX_LINK_MAX): ... here.
* sysdeps/unix/sysv/linux/pathconf.h: New file.
(statfs_link_max): New function, guts from fpathconf.c.
* sysdeps/unix/sysv/linux/fpathconf.c: Rewritten using that.
* sysdeps/unix/sysv/linux/pathconf.c (__pathconf): Likewise.
* sysdeps/unix/sysv/linux/alpha/pathconf.c (__pathconf): Rewritten
to use the linux/pathconf.c code by #include rather than duplication.
* sysdeps/unix/sysv/linux/alpha/fpathconf.c (__pathconf): Likewise.
2002-10-16 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/x86_64/sysdep.h (SYSCALL_ERROR_HANDLER):
Use __libc_errno only for libc itself.
changed from [USE_TLS && HAVE___THREAD].
* sysdeps/i386/dl-machine.h (elf_machine_type_class, elf_machine_rel):
Disable TLS relocs if [RTLD_BOOTSTRAP && !USE___THREAD].
* sysdeps/x86_64/dl-machine.h
(elf_machine_type_class, elf_machine_rela): Likewise.
* sysdeps/sh/dl-machine.h (elf_machine_type_class, elf_machine_rela):
Likewise.
* include/link.h (struct link_map): Remove member l_tls_tp_initialized.
* elf/rtld.c (_dl_start_final, dl_main): Don't use it.
(_dl_start): Conditionalize PT_TLS check on [USE___THREAD].
* sysdeps/i386/dl-tls.h (__TLS_GET_ADDR): Use ___tls_get_addr_internal
instead of ___tls_get_addr.
(___tls_get_addr_internal): Add attribute_hidden to decl.
* sysdeps/generic/ldsodefs.h (struct rtld_global): New variable
_dl_error_catch_tsd.
* elf/rtld.c (startup_error_tsd): New function.
(dl_main): Point _dl_error_catch_tsd at that.
* elf/dl-error.c: Don't use libc-tsd.h for DL_ERROR,
use new function pointer instead.
* elf/dl-tsd.c: New file.
* elf/Makefile (routines): Add it.
2002-10-07 Roland McGrath <roland@redhat.com>
* elf/dl-misc.c (_dl_debug_vdprintf): Use INTERNAL_SYSCALL macro for
writev if it's available. Otherwise if [RTLD_PRIVATE_ERRNO] then
take _dl_load_lock around calling __writev.
* sysdeps/unix/sysv/linux/i386/sysdep.h (INTERNAL_SYSCALL): New macro.
(INLINE_SYSCALL): Use that.
* sysdeps/generic/dl-sysdep.h: New file.
* sysdeps/mach/hurd/dl-sysdep.h: New file.
* sysdeps/generic/ldsodefs.h: Include <dl-sysdep.h>.
* include/errno.h [IS_IN_rtld]: Include <dl-sysdep.h> to define ...
[RTLD_PRIVATE_ERRNO]: Use a hidden global variable for errno and
access it directly.
* elf/dl-minimal.c (__errno_location): Removed.
* sysdeps/unix/i386/sysdep.S (__syscall_errno) [RTLD_PRIVATE_ERRNO]:
Use GOTOFF access for errno.
* sysdeps/unix/sysv/linux/i386/sysdep.h
[RTLD_PRIVATE_ERRNO] (SYSCALL_ERROR_HANDLER): Likewise.
* sysdeps/unix/x86_64/sysdep.S (__syscall_errno) [RTLD_PRIVATE_ERRNO]:
Use PC-relative access for errno.
* sysdeps/unix/sysv/linux/x86_64/sysdep.h
[RTLD_PRIVATE_ERRNO] (SYSCALL_ERROR_HANDLER): Likewise.
* include/tls.h: New file.
(USE___THREAD): New macro.
Define to 1 under [USE_TLS && HAVE___THREAD] and only when compiling
libc or libpthread.
* sysdeps/unix/sysv/linux/i386/sysdep.h [USE___THREAD]: Conditional
changed from [USE_TLS && HAVE___THREAD].
* sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
* sysdeps/unix/i386/sysdep.S: Likewise.
* sysdeps/unix/x86_64/sysdep.S: Likewise.
* include/errno.h: Likewise.
* include/netdb.h: Likewise.
* include/resolv.h: Likewise.
* sysdeps/generic/errno.c: New file.
* csu/Makefile (aux): New variable, list errno.
* sysdeps/unix/sysv/linux/i386/sysdep.S (errno, _errno): Remove defns.
* sysdeps/unix/sysv/linux/m68k/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/x86_64/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/arm/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/cris/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/hppa/sysdep.c: Likewise.
* sysdeps/unix/sysv/linux/ia64/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/powerpc/sysdep.c: Likewise.
* sysdeps/unix/sysv/linux/sparc/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/sh/sysdep.S: Likewise.
* sysdeps/unix/alpha/sysdep.S: Likewise.
* sysdeps/generic/start.c: Likewise.
* sysdeps/unix/start.c: Likewise.
* sysdeps/unix/arm/start.c: Likewise.
* sysdeps/unix/bsd/ultrix4/mips/start.S: Likewise.
* sysdeps/unix/sparc/start.c: Likewise.
* sysdeps/unix/sysv/irix4/start.c: Likewise.
* sysdeps/unix/sysv/linux/mips/sysdep.S: File removed.
* manual/search.texi (Tree Search Function, Hash Search Function):
Mention search.h clearly.
2002-10-05 Roland McGrath <roland@redhat.com>
* elf/dl-fxstat64.c: File removed.
* elf/dl-xstat64.c: File removed.
* elf/Makefile (rtld-routines): Remove them.
* sysdeps/unix/sysv/linux/xstat64.c: Remove RTLD_STAT64 conditionals.
Instead, use strong_alias instead of versioned_symbol in the
!SHLIB_COMPAT case.
* sysdeps/unix/sysv/linux/fxstat64.c: Likewise.
* sysdeps/unix/sysv/linux/lxstat64.c: Likewise.
* include/shlib-compat.h
(SHLIB_COMPAT): Require that IS_IN_##lib be defined nonzero.
[! NOT_IN_libc] (IS_IN_libc): Define it.
* cppflags-iterator.mk (CPPFLAGS-$(cpp-src)): Use -Dx=1 not just -Dx.
* elf/Makefile (CPPFLAGS-.os): Likewise.
* sunrpc/rpc_main.c (main): Don't declare with noreturn attribute.
Return the status instead of calling exit.
* Makeconfig (CFLAGS): Prepend -std=gnu99.
* Makerules (+make-deps): Use $(CFLAGS) only for .c sources.
Remove superfluous rm command, whose @ plus make bugs hid
all these commands from the make output.
* include/stubs-prologue.h: New file. Give #error under #ifdef _LIBC.
* Makefile ($(inst_includedir)/gnu/stubs.h): Depend on it.
Use that file's contents instead of literal echo's for the prologue.
* include/features.h: Include <gnu/stubs.h> unconditionally.
* include/gnu/stubs.h: New file.
2002-09-30 Roland McGrath <roland@redhat.com>
* elf/rtld-Rules: New file.
* elf/Makefile ($(objpfx)librtld.map, $(objpfx)librtld.mk,
$(objpfx)rtld-libc.a): New targets.
(generated): Add them.
(reloc-link): Remove -o $@ from the variable.
($(objpfx)dl-allobjs.os): Add -o $@ after $(reloc-link).
(distribute): Add rtld-Rules.
(CPPFLAGS-.os): Define this instead of CFLAGS-.os.
* Makerules ($(+sysdir_pfx)sysd-rules): Emit rules for rtld-% targets.
(common-mostlyclean, common-clean): Clean up rtld-* files.
* sysdeps/unix/make-syscalls.sh: Add rtld-*.os target name to rules.
2002-08-27 Ulrich Drepper <drepper@redhat.com>
* sysdeps/arm/Dist: Add bits/link.h.
* sunrpc/Makefile: Distribute thrsvc.
* stdio-common/Makefile: Remove more left-overs from old stdio.
* include/linewrap.h: Removed.
* libio/bug-mmap-fflush.c: Rewrite to not touch source directory.
* intl/Makefile (distribute): Add plural-eval.c.
* stdio-common/Makefile (headers): Remove bits/stdio_lim.h. This
file isn't distributed. Add special rules to install bits/stdio_lim.h.
* Make-dist: Remove traces of old stdio.
* Makeconfig: Likewise.
* locale/Makefile (localedef-aux): New variable. Only md5
assigned to it. These files are not ddistributed in this directory.
* sysdeps/unix/sysv/linux/s390/Dist: Add sys/procfs.h.
* sysdeps/unix/sysv/linux/s390/s390-64/Dist: Remove sys/procfs.h.
* sysdeps/unix/sysv/linux/s390/s390-32/Dist: Likewise.
* sysdeps/unix/sysv/linux/Dist: Remove sys/sendfile.h.
* Makeconfig (%.v.i, %.v): New implicit rules.
(preprocess-versions): Variable removed.
($(common-objpfx)shlib-versions.v.i): New target giving just the
shlib-versions input files as dependencies.
($(common-objpfx)soversions.i): Depend on that instead of the input
files. Use it as input instead of using a pipeline.
(postclean-generated): Append soversions.i, shlib-versions.v, and
shlib-versions.v.i here.
* Makerules ($(common-objpfx)Versions.def.v.i): New target giving just
the Versions.def input files as dependencies.
($(common-objpfx)Versions.v.i): Likewise for Versions files.
($(common-objpfx)Versions.all): Depend on that instead of the input
files. Use it as input instead of using a pipeline.
($(common-objpfx)sysd-versions): Likewise with Versions.v.i.
(postclean-generated): Append those .v and .v.i files here.
2001-08-28 H.J. Lu <hjl@gnu.org>
* Makeconfig (combreloc-LDFLAGS): New variable.
Add it to LDFALGS.so, LDFLAGS-rtld, and +link.
* config.make.in (have-z-combreloc): New variable.
* configure.in: Substitute libc_cv_z_combreloc.
* iconv/strtab.c (searchstring): Use correct length for comparison.
2001-07-06 Paul Eggert <eggert@twinsun.com>
* manual/argp.texi: Remove ignored LGPL copyright notice; it's
not appropriate for documentation anyway.
* manual/libc-texinfo.sh: "Library General Public License" ->
"Lesser General Public License".
2001-07-06 Andreas Jaeger <aj@suse.de>
* All files under GPL/LGPL version 2: Place under LGPL version
2.1.
2001-05-09 Michael Keezer <mkeezer@redhat.com>
* Makeconfig: Added AIX-ld support for DSO.
* Makerules: Likewise.
* dlfcn/Makefile (defaultmod1.so): Added libc_nonshared.
(defaultmod2.so): Likewise.
* debug/Makefile: Conditionalize use of elf/ld.so.
* iconvdata/Makefile: Moved LDFLAG rpath/soname info into Makeconfig.
* sysdeps/unix/sysv/aix/Makefile: Added dl-support.c and dl-error.c.
* sysdeps/unix/sysv/aix/Makefile: Made (f/g)rsave(0/1) &
(f/g)prrest(0/1) static only.
* sysdeps/unix/sysv/aix/gettimeofday.c: Removed #if 0.
* sysdeps/unix/sysv/aix/start.c: Define __dso_handle if not ELF but
shared.
* sysdeps/unix/sysv/aix/setitimer.c: New file.
* sysdeps/unix/sysv/aix/sleep.c: New file.
* sysdeps/unix/sysv/aix/usleep.c: New file.
* sysdeps/unix/sysv/aix/dl-addr.c: New file.
* sysdeps/unix/sysv/aix/dl-error.c: New file.
* sysdeps/unix/sysv/aix/dl-support.c: New file.
* sysdeps/unix/sysv/aix/powerpc/register-dump.h: New file.
(BODY for TO_LOOP): Keep track of Unicode 3.1 language tag. I f "ja",
prefer conversion to Japanese character sets. If "zh", prefer
conversion to GB2312. I f "ko", prefer conversion to KSC5601. Small
static pattern rule also that also covers
$(objpx)g$(static-start-installed-name).
[$(start-installed-name) != $(static-start-installed-name)]
(extra-objs, omit-deps, install-lib): Add
$(static-start-installed-name) and g$(static-start-installed-name).
* sysdeps/mach/hurd/i386/Makefile: Don't add crt0.o to those here;
just setting static-start-installed-name is now sufficient.
(extra-objs): Add static-start.o here.
(CFLAGS-initfini.s): Remove obsolete variable.
* sysdeps/mach/hurd/i386/Makeconfig: New file.
Define static-start-installed-name here.
* Makeconfig: Include existing $(full_config_sysdirs:=/Makeconfig).
* Make-dist (+sysdep-tsrcs): Look for Makeconfig files.
* Makerules ($(+sysdir_pfx)sysd-Makefile): Remove this target and
associated hair. Instead, just use $(wildcard ...) in the include.
* configure.in (critic_missing, aux_missing): Collect in these vars
the names of the missing programs, and include them in the error msgs.
* configure: Regenerated.
2000-12-09 Ulrich Drepper <drepper@redhat.com>
* Makeconfig (default_cflags): Make -O2 the default for stable
releases.
2000-12-08 H.J. Lu <hjl@gnu.org>
* sysdeps/ia64/fpu/s_isinfl.S: Renamed to ...
* sysdeps/ia64/fpu/s_isinf.S: This.
Add a .pred.rel.mutex note to avoid false report.
* sysdeps/ia64/fpu/s_isnanl.S: Renamed to ...
* sysdeps/ia64/fpu/s_isnan.S: This.
* sysdeps/ia64/fpu/s_fpclassify.S: New file.
* sysdeps/ia64/fpu/s_fpclassifyf.S: New file.
* sysdeps/ia64/fpu/s_fpclassifyl.S: New file.
* sysdeps/ia64/fpu/s_isinff.S: New file.
* sysdeps/ia64/fpu/s_isinfl.S: New file.
* sysdeps/ia64/fpu/s_isnanf.S: New file.
* sysdeps/ia64/fpu/s_isnanl.S: New file.
* sysdeps/ia64/fpu/s_finite.S: New file.
* sysdeps/ia64/fpu/s_finitef.S: New file.
* sysdeps/ia64/fpu/s_finitel.S: New file.
* sysdeps/ia64/fpu/s_signbit.S: New file.
* sysdeps/ia64/fpu/s_signbitf.S: New file.
* sysdeps/ia64/fpu/s_signbitl.S: New file.
* sysdeps/ia64/fpu/s_copysign.S: New file.
* sysdeps/ia64/fpu/s_copysignf.S: New file.
* sysdeps/ia64/fpu/s_copysignl.S: New file.
2000-11-28 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/getdents.c: Add _syscall_getdents64
declaration, adjust declaration of __syscall_getdents to match
kernel.
2000-11-20 Ulrich Drepper <drepper@redhat.com>
* configure.in: Add --enable-all-warnings.
* config.make.in (all-warnings): New variable.
* Makeconfig (+gccwarn): Define with many more warnings if
all-warnings is yes.
2000-11-15 Jakub Jelinek <jakub@redhat.com>
* dlfcn/default.c (main): Add test for dladdr of main returning
argv[0] in dli_fname field.
2000-11-15 Jakub Jelinek <jakub@redhat.com>
* Makeconfig (run-program-prefix): Move test-static test into the
variable.
* sysdeps/alpha/dl-machine.h (RTLD_START): Update _dl_argv.
* sysdeps/sparc/sparc32/dl-machine.h (RTLD_START): Likewise,
schedule instructions.
* sysdeps/sparc/sparc64/dl-machine.h (RTLD_START): Likewise,
schedule instructions, fix a bug in copying auxiliary data.
* manual/startup.texi (Program Arguments): Fix type of main's envp
parameter.
Reported by Ral Nez de Arenas Coronado <dervishd@linuxfreak.com>.
* Makeconfig: Ensures the soversions.mk part of Makefile gets
included before building gnu/lib-names.h
Patch by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
link-extra-libs-bounded): New variables.
(built-program-cmd): Omit $(run-program-prefix) for static BP tests.
* Makerules (do-tests-clean, common-mostlyclean): Remove BP test files.
* Rules (tests-bp.out): New variable.
(tests): Conditionally add BP tests.
(binaries-bounded): Add variable and associated rule.
* csu/Makefile [build-bounded] (extra-objs, install-lib):
Move conditional stuff after place where condition is defined.
2000-07-12 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_open.c (__gconv_open): Merge duplicated code.
2000-07-12 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_builtin.c (__gconv_get_builtin_trans): Initialize
__modname.
2000-07-12 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_open.c (__gconv_open): Initialize
result->__steps[cnt].__data.
2000-07-12 Mark Kettenis <kettenis@gnu.org>
* nss/getent.c (services_keys): Pass port number in network byte
order in call to getservbyport.
2000-07-11 Andreas Jaeger <aj@suse.de>
* stdlib/Makefile (test-canon-ARGS): Fix for building in the
source dir.
* intl/Makefile (do-gettext-test): Likewise.
* dirent/Makefile (opendir-tst1-ARGS): Likewise.
2000-07-11 Andreas Schwab <schwab@suse.de>
* Makeconfig (run-program-prefix): New rule.
(built-program-cmd): Use run-program-prefix.
* csu/Makefile (extra-objs, omit-deps, install-lib): Add
BP-flavored startup object.
($(objpfx)b$(start-installed-name)): New rule.
* include/libc-symbols.h (symbol_set_declare): Change type
of `__start_##set' and `__stop_##set' to pointer-to-function.
(symbol_set_declare): Change type of `set' to array of
pointer-to-function.
* include/set-hooks.h (RUN_HOOK): Change type of `ptr' to
pointer-to-function.
* Makeconfig: Add missing comment.
* csu/Makefile (extra-objs, omit-deps, install-lib): Add
BP-flavored startup object.
($(objpfx)b$(start-installed-name)): New rule.
* include/libc-symbols.h (symbol_set_declare): Change type
of `__start_##set' and `__stop_##set' to pointer-to-function.
(symbol_set_declare): Change type of `set' to array of
pointer-to-function.
* include/set-hooks.h (RUN_HOOK): Change type of `ptr' to
pointer-to-function.
2000-05-29 Jakub Jelinek <jakub@redhat.com>
* inet/rcmd.c (rresvport_af): Use correct port number.
2000-05-26 Andreas Schwab <schwab@suse.de>
* Makeconfig ($(common-objpfx)soversions.mk): Prepend `$lib=' to
entries in all-sonames.
($(common-objpfx)gnu/lib-names.h): Use it for the CPP symbol,
preserving the old name if different for compatibility.
2000-04-27 Ulrich Drepper <drepper@redhat.com>
* hesiod/nss_hesiod/hesiod-grp.c (_nss_hesiod_initgroups): Handle
overflows in conversion from ASCII.
2000-04-26 Jakub Jelinek <jakub@redhat.com>
* Makeconfig (full_config_sysdirs): Renamed from full-config-sysdirs.
* Makerules (full_config_sysdirs): Likewise.
* MakeTAGS (full_config_sysdirs): Likewise.
2000-04-26 Jakub Jelinek <jakub@redhat.com>
* .cvsignore: Remove linuxthreads.
* po/.cvsignore: Remove *.pot.
* posix/glob/.cvsignore: Removed.
* sysdeps/unix/bsd/osf/.cvsignore: Removed.
2000-04-25 Andreas Jaeger <aj@suse.de>
* conform/Makefile (distribute): Also distribute contents of
subdirectories.
* Makerules (no_deps): Remove abi-versions.h.
* nis/nis_print_group_entry.c: Include alloca.h for alloca prototype.
2000-04-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/sparc/sparc64/elf/Dist: Remove.
* sysdeps/sparc/sparc64/elf/crtbegin.S: Remove.
* sysdeps/sparc/sparc64/elf/crtbeginS.S: Remove.
* sysdeps/sparc/sparc64/elf/crtend.S: Remove.
* sysdeps/sparc/sparc64/elf/crtendS.S: Remove.
* sysdeps/sparc/sparc64/elf/Makefile: Don't build crtbegin/crtend
objects.
2000-04-25 Thorsten Kukuk <kukuk@suse.de>
* nscd/grpcache.c: Fix gr_name pointer [PR/1702].
2000-04-23 Bruno Haible <clisp.cons.org>
* intl/dcigettext.c: Define _GNU_SOURCE as early as possible.
* intl/l10nflist.c: Likewise.
2000-04-23 Bruno Haible <clisp.cons.org>
* intl/bindtextdom.c [!_LIBC]: Define __libc_rwlock_define,
__libc_rwlock_wrlock, __libc_rwlock_unlock as empty.
* intl/textdomain.c [!_LIBC]: Likewise.
* intl/dcigettext.c [!_LIBC]: Define __libc_rwlock_define_initialized,
__libc_rwlock_rdlock, __libc_rwlock_unlock as empty.
* intl/loadmsgcat.c (_nl_load_domain) [!_LIBC, !HAVE_ICONV]: Avoid
syntax error.
2000-04-23 Bruno Haible <clisp.cons.org>
* intl/dcigettext.c (_nl_find_msg): Do the plural treatment and
character set conversion also in the case the translation was found
after a hash collision or through binary search. Store the maximum
index together with the converted message. Use iconv() when available.
In case of out of memory during conversion, return the unconverted
translated string, not NULL.
* configure.in: If --disable-shared was given, don't set VERSIONING,
don't define DO_VERSIONING, and don't give scare warning for no
versioning.
* configure: Regenerated.
2000-04-02 Ulrich Drepper <drepper@redhat.com>
* elf/dl-fini.c (_dl_fini): Increment j counter after swapping in
element at this position.
* elf/Versions [ld.so] (GLIBC_2.2): Export _dl_load_lock.
* elf/link.h (struct link_map): Add l_reldepsmax, l_reldepsact, and
l_reldeps elements.
* elf/dl-lookup.c (add_dependency): New function.
(_dl_lookup_symbol): Use it whenever symbol was found in a global,
dynamically loaded object.
(_dl_lookup_symbol_skip): Likewise.
(_dl_lookup_versioned_symbol): Likewise.
(_dl_lookup_versioned_symbol_skip): Likewise.
* elf/dl-open.c: Don't define _dl_load_lock here...
* elf/rtld.c: ...but here...
* elf/dl-support.c: ...and here.
* elf/dl-close.c (_dl_close): Close also dependent objects introduce
through relocation.
* elf/dl-fini.c (_dl_fini): Also take dependencies introduced through
relocations.
* dlfcn/Makefile (glrefmain.out): Test is not expected to fail
anymore.
* dlfcn/glrefmain.c: Add one more debug message.
* Makeconfig (preprocess-versions): Don't add $(CPPFLAGS) to compiler
command line.
* Makerules (sysd-versions): Use ( ) instead of { }.
* elf/dl-load.c: Use __builtin_expect to signal that compiler should
optimize for the non-debugging case.
* elf/dl-lookup.c: Likewise.
* sysdeps/generic/libc-start.c: Likewise.
* Makeconfig (preprocess-versions): New canned sequence for running
cpp on shlib-versions and the like.
(soversions.i): Use it.
* Makerules (Versions.all, sysd-versions): Use it to preprocess the
Versions.def and Versions files.
soversions.mk generation moved here; result is a canonicalized
list "LIB VERSION [SET]" for this configuration.
(soversions.mk): Use that as input. Don't emit map-firstversions.
* Makerules (version-renames.def): New target, generated from
soversions.i with contents that was in $(map-firstversions).
(Versions.all): Don't depend on soversions.mk, depend on
version-renames.def instead; just cat it into the input.
supported version for libc 0.2.90.libio to GLIBC_2.2.
* Makeconfig (soversions.mk): Grok new third column in shlib-versions,
and use it to emit new variable `map-firstversions'.
* scripts/firstversions.awk: New file.
* Makerules (Versions.all): Use scripts/firstversions.awk and
the $(map-firstversions) value to generate a modified versions list
that includes renames in "A = B" syntax for each version set earlier
than the "earliest symbol version" named in shlib-versions.
* scripts/versions.awk: Recognize "A = B" lines in the input to mean
rename version set A to B in the output to the intermediate file.
* scripts/abi-versions.awk: New file.
* Makerules (abi-versions.h): New target, generated by that script.
[$(versioning) = yes] (before-compile): Prepend abi-versions.h.
* include/shlib-compat.h: New file, uses that generated header.
after stripping # comments, and then run it through cpp.
This allows things like "%ifdef FOO" based on config.h settings.
* shlib-versions [USE_IN_LIBIO] (.*-.*-gnu-gnu*): libc=0.2.90.libio
* crypt/crypt.texi: Update documentation of US export restrictions
to match the 14 Jan 2000 regulations.
2000-02-28 Geoff Keating <geoffk@cygnus.com>
* Makeconfig (all-subdirs): Add 'crypt' subdirectory.
* sysdeps/unix/sysv/linux/configure.in (inhibit_glue): Don't
complain if there is no crypt add-on.
* crypt/configure: Removed.
* crypt/crypt.texi: Update documentation of US export restrictions
to match the 14 Jan 2000 regulations.
2000-02-28 Geoff Keating <geoffk@cygnus.com>
* crypt: New subdirectory, merged in from the crypt add-on.
1999-11-25 Andreas Schwab <schwab@suse.de>
* Makeconfig: Include sys-dirs and sys-sorted earlier.
($(common-objpfx)soversions.mk): Wait until subdirs is complete.
($(common-objpfx)sysd-sorted): Emit marker when this file is
complete.
* sysdeps/gnu/Makefile (libdl-routines): Add eval.
1999-07-06 Zack Weinberg <zack@rabi.columbia.edu>
* dlfcn: New directory. Move the following files from elf:
dladdr.c, dlclose.c, dlerror.c, dlfcn.h, dlopen.c,
dlopenold.c, dlsym.c, dlvsym.c.
* dlfcn/Makefile: New file.
* dlfcn/Versions: New file.
* dlfcn/dlsym.c: All ELF-specific code split out to new
function _dl_sym.
* dlfcn/dlvsym.c: All ELF-specific code split out to new
function _dl_vsym.
* elf/dl-sym.c: New file. _dl_sym and _dl_vsym are
implemented here.
* dlfcn/dladdr.c: Remove all references to ELF data structures
or headers.
* dlfcn/dlclose.c: Likewise.
* dlfcn/dlerror.c: Likewise.
* dlfcn/dlopen.c: Likewise.
* dlfcn/dlopenold.c: Likewise.
* Makeconfig (dlfcn): New variable - set to `dlfcn' if elf is
yes, empty otherwise.
(libdl): Set to dlfcn/libdl.so or libdl.a if elf is yes,
depending on build-shared.
(subdirs): Add $(dlfcn).
(rpath-dirs): Add dlfcn.
* elf/Makefile: Remove all references to libdl or its
components, except the ones relating to the test cases.
(routines): Add dl-sym.
* elf/Versions (libc): Add _dl_sym and _dl_vsym for GLIBC_2.2.
(libdl): Delete.
* elf/dl-close.c (_dl_close): Change argument to void *.
* elf/dl-open.c (_dl_open): Change return type to void *.
* elf/eval.c: Removed.
* elf/ldsodefs.h: Move prototypes of _dl_catch_error,
_dlerror_run, _dl_open, _dl_close, _dl_addr, and
_dl_mcount_wrapper_check to include/dlfcn.h. Delete
_CALL_DL_FCT macro.
* include/dlfcn.h: Also prototype _dl_sym and _dl_vsym here.
Include real header from dlfcn directory.
* include/ldsodefs.h: Removed.
* grp/initgroups.c: Use DL_CALL_FCT not _CALL_DL_FCT.
* nss/getXXbyYY_r.c: Likewise.
* nss/getXXent_r.c: Likewise.
* iconv/gconv.c: Likewise. Don't include ldsodefs.h.
* iconv/gconv_db.c: Likewise. Don't include ldsodefs.h.
* iconv/skeleton.c: Don't include ldsodefs.h.
* nss/nsswitch.h: Don't include ldsodefs.h. Include dlfcn.h.
1999-07-07 Ulrich Drepper <drepper@cygnus.com>
$(start-installed-name) if not defined.
(+link-static): Use $(static-start-installed-name) instead of
$(start-installed-name).
* sysdeps/mach/hurd/i386/Makefile (static-start-installed-name):
Set to crt0.o.
1999-06-12 Mark Kettenis <kettenis@gnu.org>
1999-02-19 Philip Blundell <pb@nexus.co.uk>
* Makeconfig (link-libc): When doing a static link, make sure that
libgcc.a is included both before and after libc.a.
* sysdeps/unix/sysv/linux/speed.c (IBAUD0): New definition. Bit
set in c_iflag if cfsetispeed is call with SPEED set to zero.
(cfgetispeed): Return zero if prior if IBAUD0 is set.
(cfsetospeed): Clear IBAUD0 bit.
(cfgetispeed): Set IBAUD0 bit if necessary.
* sysdeps/unix/sysv/linux/tcsetattr.c (tcsetattr): Clear
the IBAUD0 bit in c_iflag when making the system call.
Work around a Linux kernel bug which silently changes the
PARENB/CREAD/CSIZE bits in c_cflag on pty.
Based on a patch by H.J. Lu <hjl@gnu.org>.
* Makeconfig (link-libc-static): Don't use link-libc since this
includes the shared object. Use gnulib only.
1998-09-03 Philip Blundell <pb@nexus.co.uk>
* sysdeps/arm/bits/endian.h (__FLOAT_WORD_ORDER): Define to big
endian.
* math/math_private.h: Use __FLOAT_WORD_ORDER rather than
BYTE_ORDER.
* string/endian.h: If __FLOAT_WORD_ORDER wasn't defined by
<bits/endian.h>, make it the same as __BYTE_ORDER.
1998-11-27 Ulrich Drepper <drepper@cygnus.com>
* math/math.h: Avoid using long double functions in generic macros
if __NO_LONG_DOUBLE_MATH.
* sysdeps/arm/dl-machine.h: Fix handling of weak undefined symbols
during bootstrapping.
* scripts/config.sub: Add Netwinder specific matches.
Patch by Scott Bambrough <scottb@corelcomputer.com>.
1998-11-26 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* Makeconfig ($(common-objpfx)sysd-dirs): Use automatic variables
if possible.
($(common-objpfx)sysd-sorted): Likewise.
1998-11-27 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/e_log.c (__ieee754_log): Add declaration of
local variables t1,t2 only if needed.
* sysdeps/libm-ieee754/e_atan2.c: Added braces to avoid compiler
warnings.
* sysdeps/libm-ieee754/s_truncf.c (__truncf): Likewise.
* sysdeps/libm-ieee754/s_trunc.c (__trunc): Likewise.
* sysdeps/mips/mul_1.S (Loop): Add closing comment to avoid
warning.
1998-11-27 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* math/math.h: Add brace to correct #if expression.
1998-11-25 Ulrich Drepper <drepper@cygnus.com>
* version.h (VERSION): Bump to 2.0.104.
1998-11-25 Mark Kettenis <kettenis@phys.uva.nl>
* libio/bits/stdio.h (fread_unlocked): Add missing parentheses
around parameter n.
1998-11-24 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* time/tzfile.c (__tzfile_read): Fix comment.
1998-11-24 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* Makerules (build-shlib): Pass -O1 down to linker to get
optimized shared libraries.
1998-11-24 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* Makeconfig ($(common-objpfx)sysd-dirs): Cope with no Subdirs
file. Strip "-" from inhibited subdir name. Combine into a
single awk program.
($(common-objpfx)sysd-sorted): Fix sed command.