diff options
35 files changed, 118 insertions, 421 deletions
@@ -1,5 +1,38 @@ 2012-01-07 Ulrich Drepper <drepper@gmail.com> + [BZ #13551] + * Makeconfig: Remove all but ELF support including AIX support. + * Makerules: Likewise. + * config.h.in: Likewise. + * config.make.in: Likewise. + * configure: Likewise. + * configure.in: Likewise. + * csu/Makefile: Likewise. + * csu/version.c: Likewise. + * debug/Makefile: Likewise. + * dlfcn/Makefile: Likewise. + * elf/Makefile: Likewise. + * extra-lib.mk: Likewise. + * iconv/Makefile: Likewise. + * include/libc-symbols.h: Likewise. + * include/shlib-compat.h: Likewise. + * resolv/Makefile: Likewise. + * resolv/res_libc.c: Likewise. + * rt/Makefile: Likewise. + * sysdeps/i386/asm-syntax.h: Likewise. + * sysdeps/i386/sysdep.h: Likewise. + * sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h: Likewise. + * sysdeps/mach/sysdep.h: Likewise. + * sysdeps/powerpc/powerpc32/Makefile: Likewise. + * sysdeps/powerpc/powerpc64/Makefile: Likewise. + * sysdeps/s390/asm-syntax.h: Likewise. + * sysdeps/s390/s390-32/sysdep.h: Likewise. + * sysdeps/s390/s390-64/sysdep.h: Likewise. + * sysdeps/sh/sysdep.h: Likewise. + * sysdeps/unix/sparc/sysdep.h: Likewise. + * sysdeps/wordsize-32/divdi3.c: Likewise. + * sysdeps/x86_64/sysdep.h: Likewise. + * argp/Versions: Remove _argp_unlock_xxx. [BZ #13559] diff --git a/Makeconfig b/Makeconfig index a97b7d0ce5..fb7468f51b 100644 --- a/Makeconfig +++ b/Makeconfig @@ -92,12 +92,7 @@ stack-align-test-flags = # We have a special subdir for each binary format. # For now, only ELF is fully supported. -ifeq ($(elf),yes) binfmt-subdir = elf -else -# This is probably better than nothing. -binfmt-subdir = aout -endif # Complete path to sysdep dirs. # `configure' writes a definition of `config-sysdirs' in `config.make'. @@ -395,9 +390,7 @@ asm-CPPFLAGS = endif # ELF always supports init/fini sections -ifeq ($(elf),yes) have-initfini = yes -endif ifeq ($(have-as-needed),yes) as-needed := -Wl,--as-needed @@ -426,7 +419,7 @@ ifndef static-start-installed-name static-start-installed-name = $(start-installed-name) endif -ifeq (yesyesyes,$(build-shared)$(elf)$(have-z-combreloc)) +ifeq (yesyes,$(build-shared)$(have-z-combreloc)) combreloc-LDFLAGS = -Wl,-z,combreloc LDFLAGS.so += $(combreloc-LDFLAGS) LDFLAGS-rtld += $(combreloc-LDFLAGS) @@ -496,13 +489,12 @@ ifndef +link-bounded $(link-extra-libs-bounded) $(link-libc-bounded) $(+postctor) $(+postinit) endif ifndef config-LDFLAGS -ifeq (yesyes,$(build-shared)$(elf)) +ifeq (yes,$(build-shared)) config-LDFLAGS = -Wl,-dynamic-linker=$(slibdir)/$(rtld-installed-name) endif endif ifndef link-libc ifeq (yes,$(build-shared)) -ifeq ($(elf),yes) # We need the versioned name of libc.so in the deps of $(others) et al # so that the symlink to libc.so is created before anything tries to # run the linked programs. @@ -512,7 +504,6 @@ link-libc = -Wl,-rpath-link=$(rpath-link) \ $(as-needed) $(common-objpfx)elf/ld.so $(no-as-needed) $(gnulib) # This is how to find at build-time things that will be installed there. rpath-dirs = math elf dlfcn nss nis rt resolv crypt -endif rpath-link = \ $(common-objdir):$(subst $(empty) ,:,$(patsubst ../$(subdir),.,$(rpath-dirs:%=$(common-objpfx)%))) elfobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)elf) @@ -524,12 +515,10 @@ endif endif # Differences in the linkers on the various platforms. -ifeq ($(elf),yes) LDFLAGS-rpath-ORIGIN = -Wl,-rpath,'$$ORIGIN' LDFLAGS-soname-fname = -Wl,-soname,$(@F) LDFLAGS-rdynamic = -rdynamic LDFLAGS-Bsymbolic = -Bsymbolic -endif # Choose the default search path for the dynamic linker based on # where we will install libraries. @@ -571,7 +560,6 @@ gnulib := -lgcc $(libgcc_eh) static-gnulib := -lgcc -lgcc_eh $(libunwind) libc.so-gnulib := -lgcc endif -ifeq ($(elf),yes) +preinit = $(addprefix $(csu-objpfx),crti.o) +postinit = $(addprefix $(csu-objpfx),crtn.o) +prector = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbegin.o` @@ -580,14 +568,13 @@ ifeq ($(elf),yes) +prectorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbeginS.o` +postctorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtendS.o` +interp = $(addprefix $(elf-objpfx),interp.os) -endif csu-objpfx = $(common-objpfx)csu/ elf-objpfx = $(common-objpfx)elf/ # How to run a program we just linked with our library. # The program binary is assumed to be $(word 2,$^). built-program-file = $(dir $(word 2,$^))$(notdir $(word 2,$^)) -ifeq (yesyes,$(build-shared)$(elf)) +ifeq (yes,$(build-shared)) comma = , sysdep-library-path = \ $(subst $(empty) ,:,$(strip $(patsubst -Wl$(comma)-rpath-link=%, %,\ @@ -915,29 +902,12 @@ endif endif # build-shared -ifeq ($(elf),yes) dlfcn = dlfcn ifeq ($(build-shared),yes) libdl = $(common-objpfx)dlfcn/libdl.so$(libdl.so-version) else libdl = $(common-objpfx)dlfcn/libdl.a endif -else -ifneq (,$(findstring aix,$(config-os))) -ifeq ($(build-shared),yes) -dlfcn = dlfcn -libdl = $(common-objpfx)dlfcn/libdl.so$(libdl.so-version) -else -# No libdl without shared libs on AIX -dlfcn = -libdl = -endif -else -# No ELF, no AIX - no libdl, at least for now. -dlfcn = -libdl = -endif -endif # These are the subdirectories containing the library source. The order # is more or less arbitrary. The sorting step will take care of the @@ -408,7 +408,7 @@ endif # Modify the list of routines we build for different targets -ifeq (yesyes,$(build-shared)$(elf)) +ifeq (yes,$(build-shared)) ifndef libc.so-version # Undefine this because it can't work when we libc.so is unversioned. static-only-routines = @@ -449,13 +449,8 @@ endif # $(LDLIBS-%.so) may contain -l switches to generate run-time dependencies # on other shared objects. lib%.so: lib%_pic.a $(+preinit) $(+postinit) $(+interp) -ifneq (,$(findstring aix,$(config-os))) - (echo '#!'; \ - dump -g $< | sed '1,6d' | cut -f2 | sort | uniq) > $(<:a=exp) -endif $(build-shlib) -ifeq ($(elf),yes) define build-shlib-helper $(LINK.o) -shared $(static-libgcc) -Wl,-O1 $(sysdep-LDFLAGS) \ $(if $($(@F)-no-z-defs)$(no-z-defs),,-Wl,-z,defs) $(config-LDFLAGS) \ @@ -465,20 +460,7 @@ $(LINK.o) -shared $(static-libgcc) -Wl,-O1 $(sysdep-LDFLAGS) \ $(LDFLAGS.so) $(LDFLAGS-$(@F:lib%.so=%).so) \ -L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link) endef -else -ifneq (,$(findstring aix,$(config-os))) -define build-shlib-helper -$(LINK.o) -Wl,-G,-bM:SRE,-bnoentry,-bE:$(<:a=exp) \ - $(sysdep-LDFLAGS) $(config-LDFLAGS) $(extra-B-$(@F:lib%.so=%).so) \ - $(extra-B-$(@F:lib%.so=%).so) $(load-map-file) \ - $(LDFLAGS.so) $(LDFLAGS-$(@F:lib%.so=%).so) \ - -L$(subst :, -L,$(rpath-link)) -endef -else -endif -endif -ifeq (yes,$(elf)) ifeq (yes,$(use-default-link)) # If the linker is good enough, we can let it use its default linker script. shlib-lds = @@ -527,30 +509,7 @@ define build-shlib $(build-shlib-helper) -o $@ $(shlib-lds-flags) \ $(csu-objpfx)abi-note.o $(build-shlib-objlist) endef -else -ifneq (,$(findstring aix,$(config-os))) -define build-shlib -$(build-shlib-helper) \ - -o $@ \ - $(filter-out $(map-file) $(+preinit) $(+postinit),$^) \ - $(no-whole-archive) $(LDLIBS-$(@F:lib%.so=%).so) -endef -define build-shlib -$(build-shlib-helper) \ - $(build-shlib-objlist) -endef -endif -endif -ifneq (,$(findstring aix,$(config-os))) -define build-module-helper -$(LINK.o) -Wl,-G -Wl,-bM:SRE -Wl,-bnoentry -Wl,-bexpall \ - $(sysdep-LDFLAGS) $(config-LDFLAGS) \ - $(load-map-file) \ - $(LDFLAGS.so) $(LDFLAGS-$(@F:%.so=%).so) \ - -L$(subst :, -L,$(rpath-link)) -Wl,-L=$(rpath-link) -endef -else define build-module-helper $(LINK.o) -shared $(static-libgcc) $(sysdep-LDFLAGS) $(config-LDFLAGS) \ $(if $($(@F)-no-z-defs)$(no-z-defs),,-Wl,-z,defs) \ @@ -558,11 +517,9 @@ $(LINK.o) -shared $(static-libgcc) $(sysdep-LDFLAGS) $(config-LDFLAGS) \ $(LDFLAGS.so) $(LDFLAGS-$(@F:%.so=%).so) \ -L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link) endef -endif # This macro is similar to build-shlib but it does not define a soname # and it does not depend on the destination name to start with `lib'. -ifeq (yes,$(elf)) # binutils only position loadable notes into the first page for binaries, # not for shared objects define build-module @@ -574,23 +531,6 @@ $(build-module-helper) -o $@ $(shlib-lds-flags) \ $(csu-objpfx)abi-note.o \ -Wl,--as-needed $(build-module-objlist) -Wl,--no-as-needed endef -else -ifneq (,$(findstring aix,$(config-os))) -define build-module -$(build-module-helper) \ - -o $@ \ - $(filter-out $(map-file) $(+preinit) $(+postinit),$^) \ - $(no-whole-archive) $(LDLIBS-$(@F:%.so=%).so) -endef -else -define build-module -define build-module -$(build-module-helper) \ - -o $@ \ - $(build-module-objlist) -endef -endif -endif build-module-helper-objlist = \ $(patsubst %_pic.a,$(whole-archive) %_pic.a $(no-whole-archive),\ @@ -617,7 +557,6 @@ endif # contains some of libc_pic.a already, which will prevent the COMMONs # from being allocated in libc.so, which introduces evil dependencies # between libc.so and ld.so, which can make it impossible to upgrade. -ifeq ($(elf),yes) $(common-objpfx)libc_pic.os: $(common-objpfx)libc_pic.a $(LINK.o) -nostdlib -nostartfiles -r -o $@ \ $(LDFLAGS-c_pic.os) -Wl,-d $(whole-archive) $^ -o $@ @@ -655,23 +594,6 @@ $(common-objpfx)libc.so$(libc.so-version): $(common-objpfx)libc.so common-generated += libc.so$(libc.so-version) endif endif -else -ifneq (,$(findstring aix,$(config-os))) -$(common-objpfx)libc.so: $(common-objpfx)libc_pic.a - @rm -f $@ - (echo '#!'; \ - dump -g $^ | sed '1,6d' | cut -f2 | sort | uniq) > $(^:a=exp) - sed '/__mulh/d;/__mull/d;/__divss/d;/__divus/d;/__quoss/d;/__quous/d' \ - /lib/syscalls.exp > $(common-objpfx)syscalls.exp - $(LINK.o) -G -bM:SRE -bnoentry -bE:$(^:a=exp) \ - -bE:$(common-objpfx)syscalls.exp \ - -bI:$(common-objpfx)syscalls.exp \ - -L$(common-objpfx) -o $@ $^ -# AIX runtime ld wants libc.so to be libc.a(shr.o) hardwired - cp $@ $(common-objpfx)shr.o - $(AR) $(ARFLAGS) $(common-objpfx)libc.a $(common-objpfx)shr.o -endif -endif # Figure out the source filenames in this directory. @@ -9,8 +9,8 @@ Version 2.16 * The following bugs are resolved with this release: - 13526, 13527, 13528, 13529, 13531, 13532, 13533, 13547, 13552, 13555, - 13559 + 13526, 13527, 13528, 13529, 13531, 13532, 13533, 13547, 13551, 13552, + 13555, 13559 * ISO C11 support: diff --git a/config.h.in b/config.h.in index 7db663025a..6534b6e5f7 100644 --- a/config.h.in +++ b/config.h.in @@ -8,11 +8,6 @@ # error "glibc must not be compiled with -ffast-math" #endif -/* Define if using ELF, which supports weak symbols. - This implies HAVE_ASM_WEAK_DIRECTIVE and NO_UNDERSCORES; set by - --with-elf. */ -#undef HAVE_ELF - /* Define if building with SELinux support. Set by --with-selinux. */ #undef HAVE_SELINUX @@ -22,9 +17,6 @@ /* Defined if building with SELinux support & libcap libs are detected. */ #undef HAVE_LIBCAP -/* Define if using XCOFF. Set by --with-xcoff. */ -#undef HAVE_XCOFF - /* Define if C symbols are asm symbols. Don't define if C symbols have a `_' prepended to make the asm symbol. */ #undef NO_UNDERSCORES diff --git a/config.make.in b/config.make.in index 7ee0cfdd6b..a583ebdddd 100644 --- a/config.make.in +++ b/config.make.in @@ -44,7 +44,6 @@ sysincludes = @SYSINCLUDES@ c++-sysincludes = @CXX_SYSINCLUDES@ all-warnings = @all_warnings@ -elf = @elf@ have-z-combreloc = @libc_cv_z_combreloc@ have-z-execstack = @libc_cv_z_execstack@ have-initfini = @libc_cv_have_initfini@ @@ -616,8 +616,6 @@ profile libc_cv_pic_default shared static -xcoff -elf ldd_rewrite_script use_ldconfig libc_cv_as_i686 @@ -769,7 +767,6 @@ with_fp with_binutils with_elf with_selinux -with_xcoff with_headers with_default_link enable_sanity_checks @@ -1458,7 +1455,6 @@ Optional Packages: --with-binutils=PATH specify location of binutils (as and ld) --with-elf if using the ELF object format --with-selinux if building with SELinux support - --with-xcoff if using the XCOFF object format --with-headers=PATH location of system headers to use (for example /usr/src/linux/include) [default=compiler default] --with-default-link do not use explicit linker scripts @@ -3545,14 +3541,6 @@ else fi -# Check whether --with-xcoff was given. -if test "${with_xcoff+set}" = set; then : - withval=$with_xcoff; xcoff=$withval -else - xcoff=no -fi - - # Check whether --with-headers was given. if test "${with_headers+set}" = set; then : @@ -3817,20 +3805,7 @@ test "$config_vendor" = unknown && config_vendor= config_os="`echo $config_os | sed 's/^unknown-//'`" # Some configurations imply other options. -case "$host_os" in -# i586-linuxaout is mangled into i586-pc-linux-gnuaout -linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*) - ;; -gnu* | linux* | freebsd* | netbsd* | sysv4* | solaris2* | irix6*) - # These systems (almost) always use the ELF format. - elf=yes - ;; -aix*) - # These systems are always xcoff - xcoff=yes - elf=no - ;; -esac +elf=yes # The configure fragment of an add-on port can modify these to supplement # or override the table in the case statement below. No fragment should @@ -4017,7 +3992,7 @@ fi ### if test -z "$enable_hacker_mode" && test x"$libc_config_ok" != xyes; then case "$machine-$host_os" in - *-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*) + *-linux* | *-gnu* | arm*-none*) ;; *) echo "*** The GNU C library is currently not available for this platform." @@ -4223,10 +4198,6 @@ irix6*) base_os=unix/sysv/irix6/$os ;; solaris[2-9]*) base_os=unix/sysv/sysv4 ;; -hpux*) - base_os=unix/sysv/hpux/$os ;; -aix4.3*) - base_os=unix/sysv/aix/aix4.3 ;; none) base_os=standalone ;; esac @@ -7930,16 +7901,6 @@ fi -if test $elf = yes; then - $as_echo "#define HAVE_ELF 1" >>confdefs.h - -fi -if test $xcoff = yes; then - $as_echo "#define HAVE_XCOFF 1" >>confdefs.h - -fi - - if test $shared = default; then shared=$elf diff --git a/configure.in b/configure.in index daf5e15a24..540b83d37f 100644 --- a/configure.in +++ b/configure.in @@ -87,11 +87,6 @@ AC_ARG_WITH([selinux], [if building with SELinux support]), [with_selinux=$withval], [with_selinux=auto]) -AC_ARG_WITH([xcoff], - AC_HELP_STRING([--with-xcoff], - [if using the XCOFF object format]), - [xcoff=$withval], - [xcoff=no]) AC_ARG_WITH([headers], AC_HELP_STRING([--with-headers=PATH], @@ -308,20 +303,7 @@ test "$config_vendor" = unknown && config_vendor= config_os="`echo $config_os | sed 's/^unknown-//'`" # Some configurations imply other options. -case "$host_os" in -# i586-linuxaout is mangled into i586-pc-linux-gnuaout -linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*) - ;; -gnu* | linux* | freebsd* | netbsd* | sysv4* | solaris2* | irix6*) - # These systems (almost) always use the ELF format. - elf=yes - ;; -aix*) - # These systems are always xcoff |
