diff --git a/ChangeLog b/ChangeLog index 4e9c698610..24d3ddf6f7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,38 @@ 2012-01-07 Ulrich Drepper + [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 diff --git a/Makerules b/Makerules index cf5fb388de..61961bc617 100644 --- a/Makerules +++ b/Makerules @@ -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. diff --git a/NEWS b/NEWS index 337ec9ff78..574d997999 100644 --- a/NEWS +++ b/NEWS @@ -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@ diff --git a/configure b/configure index 9f789efee0..f5a21e879a 100755 --- a/configure +++ b/configure @@ -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 - 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 @@ -507,7 +489,7 @@ AC_SUBST(add_on_subdirs) ### 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." @@ -670,10 +652,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 @@ -2334,14 +2312,6 @@ AC_SUBST(libc_cv_as_i686) AC_SUBST(use_ldconfig) AC_SUBST(ldd_rewrite_script) -AC_SUBST(elf) AC_SUBST(xcoff) -if test $elf = yes; then - AC_DEFINE(HAVE_ELF) -fi -if test $xcoff = yes; then - AC_DEFINE(HAVE_XCOFF) -fi - AC_SUBST(static) AC_SUBST(shared) if test $shared = default; then diff --git a/csu/Makefile b/csu/Makefile index 69e07c71cf..601264d952 100644 --- a/csu/Makefile +++ b/csu/Makefile @@ -1,5 +1,5 @@ # Makefile for csu code for GNU C library. -# Copyright (C) 1995-2004, 2005, 2006, 2010 Free Software Foundation, Inc. +# Copyright (C) 1995-2006, 2010, 2012 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -70,10 +70,8 @@ omit-deps += $(patsubst %.o,%,$(static-start-installed-name) \ install-lib += $(static-start-installed-name) g$(static-start-installed-name) endif -ifeq (yes,$(elf)) before-compile += $(objpfx)abi-tag.h generated += abi-tag.h -endif ifeq ($(have-initfini),yes) @@ -124,10 +122,8 @@ $(objpfx)defs.h: $(objpfx)initfini.s endif -ifeq (yes,$(elf)) extra-objs += abi-note.o init.o asm-CPPFLAGS += -I$(objpfx). -endif include ../Rules @@ -139,7 +135,6 @@ $(CC) -nostdlib -nostartfiles -r -o $@ $^ endef ifndef start-installed-name-rule -ifeq (yes,$(elf)) # We link the ELF startfile along with a SHT_NOTE section indicating # the kernel ABI the binaries linked with this library will require. $(objpfx)$(start-installed-name): $(objpfx)start.o $(objpfx)abi-note.o \ @@ -151,19 +146,6 @@ $(objpfx)S$(start-installed-name): $(objpfx)start.os $(objpfx)abi-note.o \ $(objpfx)b$(start-installed-name): $(objpfx)start.ob $(objpfx)abi-note.ob \ $(objpfx)init.ob $(link-relocatable) -else -# The startfile is installed under different names, so we just call our -# source file `start.c' and copy to the installed name after compiling. -$(objpfx)$(start-installed-name): $(objpfx)start.o - rm -f $@ - ln $< $@ -$(objpfx)S$(start-installed-name): $(objpfx)start.os - rm -f $@ - ln $< $@ -$(objpfx)b$(start-installed-name): $(objpfx)start.ob - rm -f $@ - ln $< $@ -endif endif # The profiling startfile is made by linking together the normal diff --git a/csu/version.c b/csu/version.c index fd13d55c50..564aec5384 100644 --- a/csu/version.c +++ b/csu/version.c @@ -66,7 +66,6 @@ __gnu_get_libc_version (void) } weak_alias (__gnu_get_libc_version, gnu_get_libc_version) -#ifdef HAVE_ELF /* This function is the entry point for the shared object. Running the library as a program will get here. */ @@ -77,4 +76,3 @@ __libc_main (void) __libc_print_version (); _exit (0); } -#endif diff --git a/debug/Makefile b/debug/Makefile index e6842f0ae5..579fce66da 100644 --- a/debug/Makefile +++ b/debug/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2001,2004-2008, 2009, 2011 Free Software Foundation, Inc. +# Copyright (C) 1998-2001,2004-2008, 2009, 2011, 2012 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -140,11 +140,9 @@ install-bin-script = xtrace include ../Makeconfig distribute += catchsegv.sh xtrace.sh -ifeq ($(elf),yes) ifeq ($(build-shared),yes) install-bin-script += catchsegv endif -endif generated = catchsegv xtrace include ../Rules diff --git a/dlfcn/Makefile b/dlfcn/Makefile index dd4fb83dd5..ae76082111 100644 --- a/dlfcn/Makefile +++ b/dlfcn/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1995-2006, 2010 Free Software Foundation, Inc. +# Copyright (C) 1995-2006, 2010, 2012 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -53,7 +53,7 @@ failtestmod.so-no-z-defs = yes glreflib2.so-no-z-defs = yes errmsg1mod.so-no-z-defs = yes -ifeq (yesyesyes,$(build-static)$(build-shared)$(elf)) +ifeq (yesyes,$(build-static)$(build-shared)) tests += tststatic tststatic2 tests-static += tststatic tststatic2 modules-names += modstatic modstatic2 @@ -134,4 +134,4 @@ $(objpfx)bug-atexit3.out: $(objpfx)bug-atexit3-lib.so # This ensures they will load libc.so for needed symbols if loaded by # a statically-linked program that hasn't already loaded it. $(objpfx)libdl.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a \ - $(if $(filter yes,$(elf)), $(elfobjdir)/ld.so) + $(elfobjdir)/ld.so diff --git a/elf/Makefile b/elf/Makefile index f20f52dee1..b010085b29 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1995-2007,2008,2009,2010,2011 Free Software Foundation, Inc. +# Copyright (C) 1995-2011, 2012 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -202,7 +202,7 @@ tests += tst-array1 tst-array2 tst-array3 tst-array4 tst-array5 endif ifeq (yes,$(build-static)) tests-static = tst-tls1-static tst-tls2-static tst-stackguard1-static -ifeq (yesyesyes,$(build-static)$(build-shared)$(elf)) +ifeq (yesyes,$(build-static)$(build-shared)) tests-static += tst-tls9-static tst-tls9-static-ENV = \ LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)dlfcn diff --git a/extra-lib.mk b/extra-lib.mk index 775eb23cdd..f2a19b0423 100644 --- a/extra-lib.mk +++ b/extra-lib.mk @@ -12,7 +12,7 @@ extra-libs-left := $(filter-out $(lib),$(extra-libs-left)) object-suffixes-$(lib) := $(filter-out $($(lib)-inhibit-o),$(object-suffixes)) ifneq (,$($(lib)-static-only-routines)) -ifneq (,$(filter yesyes%,$(build-shared)$(elf)$($(lib).so-version))) +ifneq (,$(filter yes%,$(build-shared)$($(lib).so-version))) object-suffixes-$(lib) += $(filter-out $($(lib)-inhibit-o),.oS) endif endif diff --git a/iconv/Makefile b/iconv/Makefile index 77a9ad7666..46b6e9bdf3 100644 --- a/iconv/Makefile +++ b/iconv/Makefile @@ -1,4 +1,5 @@ -# Copyright (C) 1997,1998,2000-2004,2007,2009 Free Software Foundation, Inc. +# Copyright (C) 1997,1998,2000-2004,2007,2009,2012 +# Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -27,13 +28,7 @@ headers = iconv.h gconv.h routines = iconv_open iconv iconv_close \ gconv_open gconv gconv_close gconv_db gconv_conf \ gconv_builtin gconv_simple gconv_trans gconv_cache -ifeq ($(elf),yes) routines += gconv_dl -else -CFLAGS-gconv_db.c = -DSTATIC_GCONV -CFLAGS-gconv_cache.c = -DSTATIC_GCONV -CFLAGS-gconv_simple.c = -DSTATIC_GCONV -endif vpath %.c ../locale/programs ../intl diff --git a/include/libc-symbols.h b/include/libc-symbols.h index 851efc5c28..e253722c44 100644 --- a/include/libc-symbols.h +++ b/include/libc-symbols.h @@ -1,6 +1,6 @@ /* Support macros for making weak and strong aliases for symbols, and for using symbol sets and linker warnings with GNU ld. - Copyright (C) 1995-1998,2000-2006,2008,2009,2011 + Copyright (C) 1995-1998,2000-2006,2008,2009,2011,2012 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -32,7 +32,6 @@ * ASM_GLOBAL_DIRECTIVE with `.globl' or `.global'. * ASM_TYPE_DIRECTIVE_PREFIX with `@' or `#' or whatever for .type, or leave it undefined if there is no .type directive. - * HAVE_ELF if using ELF, which supports weak symbols using `.weak'. * HAVE_ASM_WEAK_DIRECTIVE if we have weak symbols using `.weak'. * HAVE_ASM_WEAKEXT_DIRECTIVE if we have weak symbols using `.weakext'. @@ -54,8 +53,7 @@ #include -/* The symbols in all the user (non-_) macros are C symbols. - NO HAVE_ELF implies a.out. */ +/* The symbols in all the user (non-_) macros are C symbols. */ #if defined HAVE_ASM_WEAK_DIRECTIVE || defined HAVE_ASM_WEAKEXT_DIRECTIVE # define HAVE_WEAK_SYMBOLS @@ -222,51 +220,35 @@ /* When a reference to SYMBOL is encountered, the linker will emit a warning message MSG. */ -#ifdef HAVE_ELF - /* We want the .gnu.warning.SYMBOL section to be unallocated. */ -# ifdef HAVE_ASM_PREVIOUS_DIRECTIVE -# define __make_section_unallocated(section_string) \ +#ifdef HAVE_ASM_PREVIOUS_DIRECTIVE +# define __make_section_unallocated(section_string) \ asm (".section " section_string "\n\t.previous"); -# elif defined HAVE_ASM_POPSECTION_DIRECTIVE -# define __make_section_unallocated(section_string) \ +#elif defined HAVE_ASM_POPSECTION_DIRECTIVE +# define __make_section_unallocated(section_string) \ asm (".pushsection " section_string "\n\t.popsection"); -# else -# define __make_section_unallocated(section_string) -# endif +#else +# define __make_section_unallocated(section_string) +#endif /* Tacking on "\n\t#" to the section name makes gcc put it's bogus section attributes on what looks like a comment to the assembler. */ -# ifdef HAVE_SECTION_QUOTES -# define __sec_comment "\"\n\t#\"" -# else -# define __sec_comment "\n\t#" -# endif -# define link_warning(symbol, msg) \ +#ifdef HAVE_SECTION_QUOTES +# define __sec_comment "\"\n\t#\"" +#else +# define __sec_comment "\n\t#" +#endif +#define link_warning(symbol, msg) \ __make_section_unallocated (".gnu.warning." #symbol) \ static const char __evoke_link_warning_##symbol[] \ __attribute__ ((used, section (".gnu.warning." #symbol __sec_comment))) \ = msg; -# define libc_freeres_ptr(decl) \ +#define libc_freeres_ptr(decl) \ __make_section_unallocated ("__libc_freeres_ptrs, \"aw\", %nobits") \ decl __attribute__ ((section ("__libc_freeres_ptrs" __sec_comment))) -# define __libc_freeres_fn_section \ +#define __libc_freeres_fn_section \ __attribute__ ((section ("__libc_freeres_fn"))) -#else /* Not ELF: a.out */ -# ifdef HAVE_XCOFF -/* XCOFF does not support .stabs. - The native aix linker will remove the .stab and .stabstr sections - The gnu linker will have a fatal error if there is a relocation for - symbol in the .stab section. Silently disable this macro. */ -# define link_warning(symbol, msg) -# else -# define link_warning(symbol, msg) \ - asm (".stabs \"" msg "\",30,0,0,0\n\t" \ - ".stabs \"" __SYMBOL_PREFIX #symbol "\",1,0,0,0\n"); -# endif /* XCOFF */ -# define libc_freeres_ptr(decl) decl -# define __libc_freeres_fn_section -#endif + #define libc_freeres_fn(name) \ static void name (void) __attribute_used__ __libc_freeres_fn_section; \ text_set_element (__libc_subfreeres, name); \ @@ -337,77 +319,50 @@ for linking") /* Symbol set support macros. */ -#ifdef HAVE_ELF - /* Make SYMBOL, which is in the text segment, an element of SET. */ -# define text_set_element(set, symbol) _elf_set_element(set, symbol) +#define text_set_element(set, symbol) _elf_set_element(set, symbol) /* Make SYMBOL, which is in the data segment, an element of SET. */ -# define data_set_element(set, symbol) _elf_set_element(set, symbol) +#define data_set_element(set, symbol) _elf_set_element(set, symbol) /* Make SYMBOL, which is in the bss segment, an element of SET. */ -# define bss_set_element(set, symbol) _elf_set_element(set, symbol) +#define bss_set_element(set, symbol) _elf_set_element(set, symbol) /* These are all done the same way in ELF. There is a new section created for each set. */ -# ifdef SHARED +#ifdef SHARED /* When building a shared library, make the set section writable, because it will need to be relocated at run time anyway. */ -# define _elf_set_element(set, symbol) \ +# define _elf_set_element(set, symbol) \ static const void *__elf_set_##set##_element_##symbol##__ \ __attribute__ ((used, section (#set))) = &(symbol) -# else -# define _elf_set_element(set, symbol) \ +#else +# define _elf_set_element(set, symbol) \ static const void *const __elf_set_##set##_element_##symbol##__ \ __attribute__ ((used, section (#set))) = &(symbol) -# endif +#endif /* Define SET as a symbol set. This may be required (it is in a.out) to be able to use the set's contents. */ -# define symbol_set_define(set) symbol_set_declare(set) +#define symbol_set_define(set) symbol_set_declare(set) /* Declare SET for use in this module, if defined in another module. In a shared library, this is always local to that shared object. For static linking, the set might be wholly absent and so we use weak references. */ -# define symbol_set_declare(set) \ +#define symbol_set_declare(set) \ extern char const __start_##set[] __symbol_set_attribute; \ extern char const __stop_##set[] __symbol_set_attribute; -# ifdef SHARED -# define __symbol_set_attribute attribute_hidden -# else -# define __symbol_set_attribute __attribute__ ((weak)) -# endif +#ifdef SHARED +# define __symbol_set_attribute attribute_hidden +#else +# define __symbol_set_attribute __attribute__ ((weak)) +#endif /* Return a pointer (void *const *) to the first element of SET. */ -# define symbol_set_first_element(set) ((void *const *) (&__start_##set)) +#define symbol_set_first_element(set) ((void *const *) (&__start_##set)) /* Return true iff PTR (a void *const *) has been incremented past the last element in SET. */ -# define symbol_set_end_p(set, ptr) ((ptr) >= (void *const *) &__stop_##set) - -#else /* Not ELF: a.out. */ - -# ifdef HAVE_XCOFF -/* XCOFF does not support .stabs. - The native aix linker will remove the .stab and .stabstr sections - The gnu linker will have a fatal error if there is a relocation for - symbol in the .stab section. Silently disable these macros. */ -# define text_set_element(set, symbol) -# define data_set_element(set, symbol) -# define bss_set_element(set, symbol) -# else -# define text_set_element(set, symbol) \ - asm (".stabs \"" __SYMBOL_PREFIX #set "\",23,0,0," __SYMBOL_PREFIX #symbol) -# define data_set_element(set, symbol) \ - asm (".stabs \"" __SYMBOL_PREFIX #set "\",25,0,0," __SYMBOL_PREFIX #symbol) -# define bss_set_element(set, symbol) ?error Must use initialized data. -# endif /* XCOFF */ -# define symbol_set_define(set) void *const (set)[1]; -# define symbol_set_declare(set) extern void *const (set)[1]; - -# define symbol_set_first_element(set) &(set)[1] -# define symbol_set_end_p(set, ptr) (*(ptr) == 0) - -#endif /* ELF. */ +#define symbol_set_end_p(set, ptr) ((ptr) >= (void *const *) &__stop_##set) #if DO_VERSIONING # define symbol_version(real, name, version) \ diff --git a/include/shlib-compat.h b/include/shlib-compat.h index 79246dff25..b639c179c2 100644 --- a/include/shlib-compat.h +++ b/include/shlib-compat.h @@ -1,5 +1,5 @@ /* Macros for managing ABI-compatibility definitions using ELF symbol versions. - Copyright (C) 2000, 2002, 2006 Free Software Foundation, Inc. + Copyright (C) 2000, 2002, 2006, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -20,13 +20,13 @@ #ifndef _SHLIB_COMPAT_H #define _SHLIB_COMPAT_H 1 -#if defined HAVE_ELF && defined DO_VERSIONING +#if defined DO_VERSIONING /* Since there is just one set of .d files generated, we need to include this unconditionally to have the dependency noticed properly. */ #include /* header generated by abi-versions.awk */ #endif -#if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING +#if defined SHARED && defined DO_VERSIONING /* The file abi-versions.h (generated by scripts/abi-versions.awk) defines symbols like `ABI_libm_GLIBC_2_0' for each version set in the source diff --git a/nptl/ChangeLog b/nptl/ChangeLog index a2c530a83e..6ccd981498 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,5 +1,7 @@ 2012-01-07 Ulrich Drepper + * Makefile: Remove elf=yes test, only ELF is supported. + * shlib-versions: Remove entries for ports architectures. In case anyone cares, the IA-64 architecture could move to ports. diff --git a/nptl/Makefile b/nptl/Makefile index 18c3182976..be6f490738 100644 --- a/nptl/Makefile +++ b/nptl/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 2002-2008,2009,2010 Free Software Foundation, Inc. +# Copyright (C) 2002-2008,2009,2010,2012 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -519,7 +519,7 @@ $(objpfx)libpthread.so: +postinit += $(addprefix $(objpfx),$(crtn-objs)) # Depend on ld.so too to get proper versions of ld.so symbols. $(objpfx)libpthread.so: $(common-objpfx)libc.so \ $(common-objpfx)libc_nonshared.a \ - $(if $(filter yes,$(elf)), $(elfobjdir)/ld.so) + $(elfobjdir)/ld.so # Make sure we link with the thread library. ifeq ($(build-shared),yes) diff --git a/resolv/Makefile b/resolv/Makefile index b4287dec0b..a7c3f5adab 100644 --- a/resolv/Makefile +++ b/resolv/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1994-2001,2003,2004,2007,2008,2011 +# Copyright (C) 1994-2001,2003,2004,2007,2008,2011,2012 # Free Software Foundation, Inc. # This file is part of the GNU C Library. @@ -91,7 +91,7 @@ CFLAGS-res_hconf.c = -fexceptions $(objpfx)libresolv.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a # Some hosts need '__stack_chk_guard', so pull in the definition from # ld.so if required. -ifeq (yesyes,$(have-ssp)$(elf)) +ifeq (yes,$(have-ssp)) LDLIBS-resolv.so += $(as-needed) $(elfobjdir)/ld.so $(no-as-needed) endif diff --git a/resolv/res_libc.c b/resolv/res_libc.c index 1f6b3a19ef..48d3200b7e 100644 --- a/resolv/res_libc.c +++ b/resolv/res_libc.c @@ -133,7 +133,7 @@ extern __thread struct __res_state *__libc_resp /* We declare this with compat_symbol so that it's not visible at link time. Programs must use the accessor functions. */ -#if defined HAVE_ELF && defined SHARED && defined DO_VERSIONING +#if defined SHARED && defined DO_VERSIONING # include compat_symbol (libc, _res, _res, GLIBC_2_0); #endif diff --git a/rt/Makefile b/rt/Makefile index fe25309098..a1700adf50 100644 --- a/rt/Makefile +++ b/rt/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2004, 2006, 2007 Free Software Foundation, Inc. +# Copyright (C) 1997-2004, 2006, 2007, 2012 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -69,7 +69,7 @@ LDFLAGS-rt.so = -Wl,--enable-new-dtags,-z,nodelete # a statically-linked program that hasn't already loaded it. $(objpfx)librt.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a \ $(shared-thread-library) \ - $(if $(filter yes,$(elf)), $(elfobjdir)/ld.so) + $(elfobjdir)/ld.so ifeq (yes,$(build-shared)) $(addprefix $(objpfx),$(tests)): $(objpfx)librt.so $(shared-thread-library) @@ -84,5 +84,5 @@ tst-mqueue7-ARGS = -- $(built-program-cmd) ifeq (yes,$(build-static-nss)) otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \ - $(resolvobjdir)/libresolv.a + $(resolvobjdir)/libresolv.a endif diff --git a/sysdeps/i386/asm-syntax.h b/sysdeps/i386/asm-syntax.h index e59e633224..19510e01b5 100644 --- a/sysdeps/i386/asm-syntax.h +++ b/sysdeps/i386/asm-syntax.h @@ -1,5 +1,5 @@ /* Definitions for x86 syntax variations. - Copyright (C) 1992, 1994, 1995, 1997, 2000 Free Software Foundation, Inc. + Copyright (C) 1992,1994,1995,1997,2000,2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Its master source is NOT part of the C library, however. The master source lives in the GNU MP Library. @@ -19,11 +19,7 @@ 02111-1307 USA. */ #undef ALIGN -#if defined NOLOG_ALIGN || defined HAVE_ELF -# define ALIGN(log) .align 1< compat_symbol (libc, __divdi3, __divdi3, GLIBC_2_0); compat_symbol (libc, __moddi3, __moddi3, GLIBC_2_0); diff --git a/sysdeps/x86_64/sysdep.h b/sysdeps/x86_64/sysdep.h index d61e126733..cb8dced8e6 100644 --- a/sysdeps/x86_64/sysdep.h +++ b/sysdeps/x86_64/sysdep.h @@ -1,5 +1,5 @@ /* Assembler macros for x86-64. - Copyright (C) 2001, 2002, 2003, 2011 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2011, 2012 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -23,8 +23,6 @@ /* Syntactic details of assembler. */ -#ifdef HAVE_ELF - /* ELF uses byte-counts for .align, most others use log2 of count of bytes. */ #define ALIGNARG(log2) 1<