This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Remove --disable-versioning


This patch removes --disable-versioning, as proposed in
<https://sourceware.org/ml/libc-alpha/2013-07/msg00174.html> and
further discussed in
<https://sourceware.org/ml/libc-alpha/2013-08/msg00382.html>.  (I may
remove --enable-oldest-abi separately.)

The effect is that versioning is always enabled for shared library
builds.  $(versioning) conditionals in makefiles become
$(build-shared), which is consistent with how the makefile code would
have operated for both --enable-shared and --disable-shared builds.

In existing working builds (no explicit --disable-versioning),
DO_VERSIONING will be defined for both shared and static library
builds if and only is shared libraries are being built at all (that
is, whether it is defined for building static library objects depends
on whether shared libraries are being built).  Uses of DO_VERSIONING
together with SHARED are simply removed.  Uses in a couple of
testcases are also removed; those testcases are only built when shared
libraries are built.  In shlib-compat.h, we have

#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 <abi-versions.h>       /* header generated by abi-versions.awk */
#endif

and since there are in fact separate .o.d and .os.d files, this
appears to be an obsolete comment and is changed to a conditional on
SHARED.  Finally, in libc-symbols.h, DO_VERSIONING on its own controls
the definitions of macros such as symbol_version and
default_symbol_version, but it appears wrong for symbol version
information to appear in libc.a objects depending on whether libc.so
is built, and this patch changes this to a conditional on SHARED so
that the static objects no longer contain such version information,
unconditionally.

Tested x86_64; the installed shared libraries are unchanged by this
patch.  (As noted, on some other platforms the installed *static*
libraries will differ in the absence of symbol version information
after this patch, where the symbol versioning macros are used without
conditionals on SHARED.  I think the removal of this version
information from static libraries is an improvement.)

2013-08-28  Joseph Myers  <joseph@codesourcery.com>

	* configure.in (--enable-versioning): Remove configure option.
	(libc_cv_asm_symver_directive): Remove configure test.
	(libc_cv_ld_version_script_option): Likewise.
	(VERSIONING): Remove variable and AC_SUBST.
	(DO_VERSIONING): Remove AC_DEFINE.
	* configure: Regenerated.
	* config.h.in (DO_VERSIONING): Remove macro.
	* Makerules [$(versioning) = yes]: Change conditionals to
	[$(build-shared) = yes].
	* config.make.in (versioning): Remove variable.
	* dlfcn/Makefile [$(versioning) = yes]: Change conditionals to
	[$(build-shared) = yes].
	* dlfcn/modstatic2.c (test) [DO_VERSIONING]: Remove conditional.
	* dlfcn/tststatic2.c (main) [DO_VERSIONING]: Likewise.
	* elf/Makefile [$(versioning) = yes]: Change conditionals to
	[$(build-shared) = yes].
	* extra-lib.mk [$(versioning) = yes]: Likewise.
	* hurd/Makefile [$(versioning) = yes]: Likewise.
	* hurd/geteuids.c [SHARED && DO_VERSIONING]: Change conditional to
	[SHARED].
	* include/libc-symbols.h [DO_VERSIONING]: Change conditional to
	[SHARED].
	[SHARED && DO_VERSIONING && !NO_HIDDEN]: Change conditional to
	[SHARED && !NO_HIDDEN].
	* include/shlib-compat.h [DO_VERSIONING]: Change conditional to
	[SHARED].
	[SHARED && DO_VERSIONING]: Likewise..
	* libio/Makefile [$(versioning) = yes]: Change conditionals to
	[$(build-shared) = yes].
	* manual/install.texi (--disable-versioning): Remove
	documentation.
	* INSTALL: Regenerated.
	* resolv/res_libc.c [SHARED && DO_VERSIONING]: Change conditional
	to [SHARED].
	* sunrpc/Makefile [$(versioning) = yes]: Change conditional to
	[$(build-shared) = yes].
	* sysdeps/gnu/Makefile [$(versioning) = yes]: Likewise.
	* sysdeps/i386/i686/multiarch/strstr-c.c
	[SHARED && DO_VERSIONING && !NO_HIDDEN]: Change conditional to
	[SHARED && !NO_HIDDEN].
	* sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h
	[SHARED && DO_VERSIONING]: Change conditional to [SHARED].
	* sysdeps/powerpc/powerpc32/dl-machine.c
	[SHARED && !(DO_VERSIONING - 0)]: Remove conditional error.
	* sysdeps/powerpc/powerpc32/sysdep.h
	[SHARED && DO_VERSIONING && PIC && !NO_HIDDEN]: Change conditional
	to [SHARED && PIC && !NO_HIDDEN].
	* sysdeps/wordsize-32/divdi3.c [SHARED && DO_VERSIONING]: Change
	conditional to [SHARED].

nptl/ChangeLog:
2013-08-28  Joseph Myers  <joseph@codesourcery.com>

	* sysdeps/unix/sysv/linux/x86_64/cancellation.S
	[SHARED && DO_VERSIONING && !NO_HIDDEN]: Change conditional to
	[SHARED && !NO_HIDDEN].

diff --git a/INSTALL b/INSTALL
index 2c61704..211fd91 100644
--- a/INSTALL
+++ b/INSTALL
@@ -111,11 +111,6 @@ will be used, and CFLAGS sets optimization options for the compiler.
      Don't build libraries with profiling information.  You may want to
      use this option if you don't plan to do profiling.
 
-`--disable-versioning'
-     Don't compile the shared libraries with symbol version information.
-     Doing this will make the resulting library incompatible with old
-     binaries, so it's not recommended.
-
 `--enable-static-nss'
      Compile static versions of the NSS (Name Service Switch) libraries.
      This is not recommended because it defeats the purpose of NSS; a
diff --git a/Makerules b/Makerules
index 03eafb0..cca3f82 100644
--- a/Makerules
+++ b/Makerules
@@ -93,7 +93,7 @@ before-compile := $(filter $(common-objpfx)mach% $(common-objpfx)hurd%,\
 			       $(before-compile))
 
 # Even before that, we need abi-versions.h which is generated right here.
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
 ifndef avoid-generated
 before-compile := $(common-objpfx)abi-versions.h $(before-compile)
 $(common-objpfx)abi-versions.h: $(..)scripts/abi-versions.awk \
@@ -106,7 +106,7 @@ $(common-objpfx)%.latest: $(common-objpfx)abi-versions.h
 	    $(common-objpfx)abi-versions.h > $@T
 	mv -f $@T $@
 endif # avoid-generated
-endif # $(versioning) = yes
+endif # $(build-shared) = yes
 
 ifndef avoid-generated
 before-compile := $(common-objpfx)libc-abis.h $(before-compile)
@@ -283,7 +283,7 @@ endif
 
 # Generate version maps, but wait until sysdep-subdirs is known
 ifeq ($(sysd-sorted-done),t)
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
 -include $(common-objpfx)sysd-versions
 $(addprefix $(common-objpfx),$(version-maps)): $(common-objpfx)sysd-versions
 common-generated += $(version-maps)
@@ -324,7 +324,7 @@ $(common-objpfx)sysd-versions: $(common-objpfx)Versions.all \
 	) > $@T
 	mv -f $@T $@
 endif # avoid-generated
-endif # $(versioning) = yes
+endif # $(build-shared) = yes
 endif # sysd-sorted-done
 
 # Generate .dT files as we compile.
@@ -400,9 +400,9 @@ elide-routines.og += $(shared-only-routines)
 
 ifeq (yes,$(build-shared))
 
-# Reference map file only when versioning is selected and a map file name
+# Reference map file only when shared libraries are built and a map file name
 # is given.
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
 map-file = $(firstword $($(@F:.so=-map)) \
 		       $(addprefix $(common-objpfx), \
 				   $(filter $(@F:.so=.map),$(version-maps))))
@@ -575,7 +575,7 @@ $(common-objpfx)libc.so: $(elfobjdir)/soinit.os \
 			 $(elfobjdir)/interp.os $(elfobjdir)/ld.so \
 			 $(shlib-lds)
 	$(build-shlib)
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
 $(common-objpfx)libc.so: $(common-objpfx)libc.map
 endif
 common-generated += libc.so libc_pic.os
@@ -1132,7 +1132,7 @@ endif
 CPPFLAGS-nonlib = -DNOT_IN_libc=1
 
 
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
 # Generate normalized lists of symbols, versions, and data sizes.
 # This is handy for checking against existing library binaries.
 
diff --git a/config.h.in b/config.h.in
index a85f131..30568e3 100644
--- a/config.h.in
+++ b/config.h.in
@@ -57,9 +57,6 @@
    directive.  */
 #undef	HAVE_ASM_POPSECTION_DIRECTIVE
 
-/* Define if versioning of the library is wanted.  */
-#undef	DO_VERSIONING
-
 /* Defined to the oldest ABI we support, like 2.1.  */
 #undef GLIBC_OLDEST_ABI
 
diff --git a/config.make.in b/config.make.in
index 7b04568..b5308d8 100644
--- a/config.make.in
+++ b/config.make.in
@@ -67,7 +67,6 @@ output-format = @libc_cv_output_format@
 
 static-libgcc = @libc_cv_gcc_static_libgcc@
 
-versioning = @VERSIONING@
 oldest-abi = @oldest_abi@
 exceptions = @exceptions@
 multi-arch = @multi_arch@
diff --git a/configure b/configure
index afe7821..2122583 100755
--- a/configure
+++ b/configure
@@ -613,7 +613,6 @@ libc_cv_z_combreloc
 ASFLAGS_config
 libc_cv_Bgroup
 libc_cv_cc_with_libunwind
-VERSIONING
 BISON
 INSTALL_INFO
 PERL
@@ -739,7 +738,6 @@ with_default_link
 enable_sanity_checks
 enable_shared
 enable_profile
-enable_versioning
 enable_oldest_abi
 enable_hardcoded_path_in_tests
 enable_stackguard_randomization
@@ -1392,8 +1390,6 @@ Optional Features:
                           in special situations) [default=yes]
   --enable-shared         build shared library [default=yes if GNU ld]
   --enable-profile        build profiled library [default=no]
-  --disable-versioning    do not include versioning information in the library
-                          objects [default=yes if supported]
   --enable-oldest-abi=ABI configure the oldest ABI supported [e.g. 2.2]
                           [default=glibc default]
   --enable-hardcoded-path-in-tests
@@ -3432,13 +3428,6 @@ else
   profile=no
 fi
 
-# Check whether --enable-versioning was given.
-if test "${enable_versioning+set}" = set; then :
-  enableval=$enable_versioning; enable_versioning=$enableval
-else
-  enable_versioning=yes
-fi
-
 
 # Check whether --enable-oldest-abi was given.
 if test "${enable_oldest_abi+set}" = set; then :
@@ -5631,90 +5620,6 @@ if test $libc_cv_asm_unique_object = yes; then
 
 fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for .symver assembler directive" >&5
-$as_echo_n "checking for .symver assembler directive... " >&6; }
-if ${libc_cv_asm_symver_directive+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat > conftest.s <<EOF
-${libc_cv_dot_text}
-_sym:
-.symver _sym,sym@VERS
-EOF
-if ${CC-cc} -c $ASFLAGS conftest.s 1>&5 2>&5; then
-  libc_cv_asm_symver_directive=yes
-else
-  libc_cv_asm_symver_directive=no
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_symver_directive" >&5
-$as_echo "$libc_cv_asm_symver_directive" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld --version-script" >&5
-$as_echo_n "checking for ld --version-script... " >&6; }
-if ${libc_cv_ld_version_script_option+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test $libc_cv_asm_symver_directive = yes; then
-  cat > conftest.s <<EOF
-${libc_cv_dot_text}
-_sym:
-.symver _sym,sym@VERS
-EOF
-  cat > conftest.map <<EOF
-VERS_1 {
-	global: sym;
-};
-
-VERS_2 {
-	global: sym;
-} VERS_1;
-EOF
-  if ${CC-cc} -c $ASFLAGS conftest.s 1>&5 2>&5; then
-    if { ac_try='${CC-cc} $CFLAGS $LDFLAGS -shared
-				-o conftest.so conftest.o
-				-nostartfiles -nostdlib
-				-Wl,--version-script,conftest.map
-		       1>&5'
-  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; };
-    then
-      libc_cv_ld_version_script_option=yes
-    else
-      libc_cv_ld_version_script_option=no
-    fi
-  else
-    libc_cv_ld_version_script_option=no
-  fi
-else
-  libc_cv_ld_version_script_option=no
-fi
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ld_version_script_option" >&5
-$as_echo "$libc_cv_ld_version_script_option" >&6; }
-if test $shared != no &&
-   test $libc_cv_asm_symver_directive = yes &&
-   test $libc_cv_ld_version_script_option = yes &&
-   test $enable_versioning = yes; then
-  VERSIONING=yes
-  $as_echo "#define DO_VERSIONING 1" >>confdefs.h
-
-else
-  VERSIONING=no
-fi
-
-
-if test $shared != no && test $VERSIONING = no; then
-  echo "\
-*** WARNING: You should not compile GNU libc without versioning. Not using
-*** versioning will introduce incompatibilities so that old binaries
-*** will not run anymore.
-*** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
-fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for .previous assembler directive" >&5
 $as_echo_n "checking for .previous assembler directive... " >&6; }
 if ${libc_cv_asm_previous_directive+:} false; then :
diff --git a/configure.in b/configure.in
index 9172ad1..be13308 100644
--- a/configure.in
+++ b/configure.in
@@ -150,11 +150,6 @@ AC_ARG_ENABLE([profile],
 			     [build profiled library @<:@default=no@:>@]),
 	      [profile=$enableval],
 	      [profile=no])
-AC_ARG_ENABLE([versioning],
-	      AC_HELP_STRING([--disable-versioning],
-			     [do not include versioning information in the library objects @<:@default=yes if supported@:>@]),
-	      [enable_versioning=$enableval],
-	      [enable_versioning=yes])
 
 AC_ARG_ENABLE([oldest-abi],
 	      AC_HELP_STRING([--enable-oldest-abi=ABI],
@@ -1204,70 +1199,6 @@ if test $libc_cv_asm_unique_object = yes; then
   AC_DEFINE(HAVE_ASM_UNIQUE_OBJECT)
 fi
 
-AC_CACHE_CHECK(for .symver assembler directive, libc_cv_asm_symver_directive,
-[cat > conftest.s <<EOF
-${libc_cv_dot_text}
-_sym:
-.symver _sym,sym@VERS
-EOF
-if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
-  libc_cv_asm_symver_directive=yes
-else
-  libc_cv_asm_symver_directive=no
-fi
-rm -f conftest*])
-AC_CACHE_CHECK(for ld --version-script, libc_cv_ld_version_script_option, [dnl
-if test $libc_cv_asm_symver_directive = yes; then
-  cat > conftest.s <<EOF
-${libc_cv_dot_text}
-_sym:
-.symver _sym,sym@VERS
-EOF
-  cat > conftest.map <<EOF
-VERS_1 {
-	global: sym;
-};
-
-VERS_2 {
-	global: sym;
-} VERS_1;
-EOF
-  if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
-    if AC_TRY_COMMAND([${CC-cc} $CFLAGS $LDFLAGS -shared
-				-o conftest.so conftest.o
-				-nostartfiles -nostdlib
-				-Wl,--version-script,conftest.map
-		       1>&AS_MESSAGE_LOG_FD]);
-    then
-      libc_cv_ld_version_script_option=yes
-    else
-      libc_cv_ld_version_script_option=no
-    fi
-  else
-    libc_cv_ld_version_script_option=no
-  fi
-else
-  libc_cv_ld_version_script_option=no
-fi
-rm -f conftest*])
-if test $shared != no &&
-   test $libc_cv_asm_symver_directive = yes &&
-   test $libc_cv_ld_version_script_option = yes &&
-   test $enable_versioning = yes; then
-  VERSIONING=yes
-  AC_DEFINE(DO_VERSIONING)
-else
-  VERSIONING=no
-fi
-AC_SUBST(VERSIONING)
-
-if test $shared != no && test $VERSIONING = no; then
-  echo "\
-*** WARNING: You should not compile GNU libc without versioning. Not using
-*** versioning will introduce incompatibilities so that old binaries
-*** will not run anymore.
-*** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)."
-fi
 AC_CACHE_CHECK(for .previous assembler directive,
 	       libc_cv_asm_previous_directive, [dnl
 cat > conftest.s <<EOF
diff --git a/dlfcn/Makefile b/dlfcn/Makefile
index f3c6df9..1eedc3f 100644
--- a/dlfcn/Makefile
+++ b/dlfcn/Makefile
@@ -27,7 +27,7 @@ extra-libs-others := libdl
 
 include ../Makeconfig
 
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
 libdl-routines	+= dlopenold
 libdl-shared-only-routines := dlopenold dlfcn
 endif
diff --git a/dlfcn/modstatic2.c b/dlfcn/modstatic2.c
index 0703de8..9b5aae8 100644
--- a/dlfcn/modstatic2.c
+++ b/dlfcn/modstatic2.c
@@ -117,13 +117,11 @@ test (FILE *out, int a)
       exit (1);
     }
 
-#ifdef DO_VERSIONING
   if (dlvsym (handle2, "_dlfcn_hook", "GLIBC_PRIVATE") == NULL)
     {
       fprintf (out, "dlvsym: %s\n", dlerror ());
       exit (1);
     }
-#endif
 
   void *(*dlsymfn) (void *, const char *);
   dlsymfn = dlsym (handle2, "dlsym");
diff --git a/dlfcn/tststatic2.c b/dlfcn/tststatic2.c
index 85c0fb2..5d273a6 100644
--- a/dlfcn/tststatic2.c
+++ b/dlfcn/tststatic2.c
@@ -115,13 +115,11 @@ main (void)
       exit (1);
     }
 
-#ifdef DO_VERSIONING
   if (dlvsym (handle2, "_dlfcn_hook", "GLIBC_PRIVATE") == NULL)
     {
       printf ("dlvsym: %s\n", dlerror ());
       exit (1);
     }
-#endif
 
   void *(*dlsymfn) (void *, const char *);
   dlsymfn = dlsym (handle2, "dlsym");
diff --git a/elf/Makefile b/elf/Makefile
index 3b58649..aaa9534 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -59,7 +59,7 @@ before-compile  = $(objpfx)trusted-dirs.h
 generated	:= trusted-dirs.h trusted-dirs.st for-renamed/renamed.so
 generated-dirs	:= for-renamed
 
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
 ld-map		= $(common-objpfx)ld.map
 endif
 
diff --git a/extra-lib.mk b/extra-lib.mk
index 247946f..fd8812c 100644
--- a/extra-lib.mk
+++ b/extra-lib.mk
@@ -90,7 +90,7 @@ $(objpfx)$(patsubst %,$(libtype.oS),$(lib:lib%=%)): \
 	$(build-extra-lib)
 endif
 
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
 # Add the version script to the dependencies of the shared library.
 $(objpfx)$(lib).so: $(firstword $($(lib)-map) \
 				$(addprefix $(common-objpfx), \
diff --git a/hurd/Makefile b/hurd/Makefile
index f7c7c69..4387253 100644
--- a/hurd/Makefile
+++ b/hurd/Makefile
@@ -71,7 +71,7 @@ inlines = $(inline-headers:%.h=%-inlines)
 routines += hurdmalloc
 
 # Binary compatibility for libc.so.0.2[GLIBC_2.0].
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
 routines += compat-20
 endif
 
diff --git a/hurd/geteuids.c b/hurd/geteuids.c
index 7c546b7..92ddfae 100644
--- a/hurd/geteuids.c
+++ b/hurd/geteuids.c
@@ -63,6 +63,6 @@ geteuids (int n, uid_t *uidset)
 
 /* XXX Remove this alias when we bump the libc soname.  */
 
-#if defined SHARED && DO_VERSIONING
+#ifdef SHARED
 weak_alias (geteuids, __getuids)
 #endif
diff --git a/include/libc-symbols.h b/include/libc-symbols.h
index a3b6274..5f603a2 100644
--- a/include/libc-symbols.h
+++ b/include/libc-symbols.h
@@ -322,7 +322,7 @@ for linking")
    past the last element in SET.  */
 #define symbol_set_end_p(set, ptr) ((ptr) >= (void *const *) &__stop_##set)
 
-#if DO_VERSIONING
+#ifdef SHARED
 # define symbol_version(real, name, version) \
      _symbol_version(real, name, version)
 # define default_symbol_version(real, name, version) \
@@ -466,7 +466,7 @@ for linking")
    versioned_symbol (libc, __real_foo, foo, GLIBC_2_1);
    libc_hidden_ver (__real_foo, foo)  */
 
-#if defined SHARED && defined DO_VERSIONING && !defined NO_HIDDEN
+#if defined SHARED && !defined NO_HIDDEN
 # ifndef __ASSEMBLER__
 #  define __hidden_proto_hiddenattr(attrs...) \
   __attribute__ ((visibility ("hidden"), ##attrs))
diff --git a/include/shlib-compat.h b/include/shlib-compat.h
index 979b592..955c6ae 100644
--- a/include/shlib-compat.h
+++ b/include/shlib-compat.h
@@ -19,13 +19,9 @@
 #ifndef _SHLIB_COMPAT_H
 #define _SHLIB_COMPAT_H	1
 
-#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 <abi-versions.h>	/* header generated by abi-versions.awk */
-#endif
+#ifdef SHARED
 
-#if defined SHARED && defined DO_VERSIONING
+# include <abi-versions.h>
 
 /* 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/libio/Makefile b/libio/Makefile
index e15cd40..b2f7627 100644
--- a/libio/Makefile
+++ b/libio/Makefile
@@ -70,7 +70,7 @@ test-srcs = test-freopen
 
 all: # Make this the default target; it will be defined in Rules.
 
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
 routines += oldiofopen oldiofdopen oldiofclose oldiopopen oldpclose \
 	    oldtmpfile oldiofgetpos oldiofgetpos64 oldiofsetpos	    \
 	    oldiofsetpos64
@@ -165,7 +165,7 @@ generated = tst-fopenloc.mtrace tst-fopenloc.check
 
 aux	:= fileops genops stdfiles stdio strops
 
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
 aux	+= oldfileops oldstdfiles
 endif
 
diff --git a/manual/install.texi b/manual/install.texi
index 4575d22..2ac0104 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -138,11 +138,6 @@ linker.
 Don't build libraries with profiling information.  You may want to use
 this option if you don't plan to do profiling.
 
-@item --disable-versioning
-Don't compile the shared libraries with symbol version information.
-Doing this will make the resulting library incompatible with old
-binaries, so it's not recommended.
-
 @item --enable-static-nss
 Compile static versions of the NSS (Name Service Switch) libraries.
 This is not recommended because it defeats the purpose of NSS; a program
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S b/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S
index 2cc84c1..b4e4dcf 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S
@@ -22,7 +22,7 @@
 #include "lowlevellock.h"
 
 #ifdef IS_IN_libpthread
-# if defined SHARED && defined DO_VERSIONING && !defined NO_HIDDEN
+# if defined SHARED && !defined NO_HIDDEN
 #  define __pthread_unwind __GI___pthread_unwind
 # endif
 #else
diff --git a/resolv/res_libc.c b/resolv/res_libc.c
index 0b37f46..ee3fa21 100644
--- a/resolv/res_libc.c
+++ b/resolv/res_libc.c
@@ -131,7 +131,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 SHARED && defined DO_VERSIONING
+#ifdef SHARED
 # include <shlib-compat.h>
 compat_symbol (libc, _res, _res, GLIBC_2_0);
 #endif
diff --git a/sunrpc/Makefile b/sunrpc/Makefile
index 51a58aa..9b59796 100644
--- a/sunrpc/Makefile
+++ b/sunrpc/Makefile
@@ -64,7 +64,7 @@ ifeq ($(link-obsolete-rpc),yes)
 headers += $(headers-in-tirpc) $(headers-not-in-tirpc)
 endif
 
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
 need-export-routines := auth_des auth_unix clnt_gen clnt_perr clnt_tcp \
 			clnt_udp get_myaddr key_call netname pm_getport \
 			rpc_thread svc svc_tcp svc_udp xcrypt xdr_array xdr \
diff --git a/sysdeps/gnu/Makefile b/sysdeps/gnu/Makefile
index 6695cbf..b316696 100644
--- a/sysdeps/gnu/Makefile
+++ b/sysdeps/gnu/Makefile
@@ -29,7 +29,7 @@ ifeq ($(subdir),stdio-common)
 
 errlist-c = $(firstword $(wildcard $(addsuffix /errlist.c,$(sysdirs) .)))
 
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
 $(objpfx)errlist-compat.c: $(errlist-c) $(..)sysdeps/gnu/errlist-compat.awk \
 			   $(common-objpfx)Versions.v.i $(before-compile)
 else
diff --git a/sysdeps/i386/i686/multiarch/strstr-c.c b/sysdeps/i386/i686/multiarch/strstr-c.c
index 7516c7f..7b8794e 100644
--- a/sysdeps/i386/i686/multiarch/strstr-c.c
+++ b/sysdeps/i386/i686/multiarch/strstr-c.c
@@ -4,7 +4,7 @@
 #include "init-arch.h"
 
 #define STRSTR __strstr_ia32
-#if defined SHARED && defined DO_VERSIONING && !defined NO_HIDDEN
+#if defined SHARED && !defined NO_HIDDEN
 #undef libc_hidden_builtin_def
 #define libc_hidden_builtin_def(name) \
   __hidden_ver1 (__strstr_ia32, __GI_strstr, __strstr_ia32);
diff --git a/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h b/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h
index b0b863c..af861c1 100644
--- a/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h
+++ b/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h
@@ -10,7 +10,7 @@
   SHLIB_COMPAT(lib, introduced, LONG_DOUBLE_COMPAT_VERSION)
 #define long_double_symbol(lib, local, symbol) \
   long_double_symbol_1 (lib, local, symbol, LONG_DOUBLE_COMPAT_VERSION)
-#if defined SHARED && defined DO_VERSIONING
+#ifdef SHARED
 # define ldbl_hidden_def(local, name) libc_hidden_ver (local, name)
 # define ldbl_strong_alias(name, aliasname) \
   strong_alias (name, __GL_##name##_##aliasname) \
diff --git a/sysdeps/powerpc/powerpc32/dl-machine.c b/sysdeps/powerpc/powerpc32/dl-machine.c
index 188f72c..3e7202d 100644
--- a/sysdeps/powerpc/powerpc32/dl-machine.c
+++ b/sysdeps/powerpc/powerpc32/dl-machine.c
@@ -29,13 +29,6 @@
    by _dl_sysdep_start via DL_PLATFORM_INIT.  */
 extern int __cache_line_size attribute_hidden;
 
-/* Because ld.so is now versioned, these functions can be in their own file;
-   no relocations need to be done to call them.
-   Of course, if ld.so is not versioned...  */
-#if defined SHARED && !(DO_VERSIONING - 0)
-#error This will not work with versioning turned off, sorry.
-#endif
-
 
 /* Stuff for the PLT.  */
 #define PLT_INITIAL_ENTRY_WORDS 18
diff --git a/sysdeps/powerpc/powerpc32/sysdep.h b/sysdeps/powerpc/powerpc32/sysdep.h
index 47d02a8..78f54f9 100644
--- a/sysdeps/powerpc/powerpc32/sysdep.h
+++ b/sysdeps/powerpc/powerpc32/sysdep.h
@@ -99,8 +99,7 @@ GOT_LABEL:			;					      \
 # define JUMPTARGET(name) name
 #endif
 
-#if defined SHARED && defined DO_VERSIONING && defined PIC \
-    && !defined NO_HIDDEN
+#if defined SHARED && defined PIC && !defined NO_HIDDEN
 # undef HIDDEN_JUMPTARGET
 # define HIDDEN_JUMPTARGET(name) __GI_##name##@local
 #endif
diff --git a/sysdeps/wordsize-32/divdi3.c b/sysdeps/wordsize-32/divdi3.c
index 7898541..fa122aa 100644
--- a/sysdeps/wordsize-32/divdi3.c
+++ b/sysdeps/wordsize-32/divdi3.c
@@ -333,7 +333,7 @@ strong_alias (__umoddi3, __umoddi3_internal)
 
 /* We declare these with compat_symbol so that they are not visible at
    link time.  Programs must use the functions from libgcc.  */
-#if defined SHARED && defined DO_VERSIONING
+#ifdef SHARED
 # include <shlib-compat.h>
 compat_symbol (libc, __divdi3, __divdi3, GLIBC_2_0);
 compat_symbol (libc, __moddi3, __moddi3, GLIBC_2_0);

-- 
Joseph S. Myers
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]