Remove --disable-versioning.

This commit is contained in:
Joseph Myers 2013-09-04 15:25:42 +00:00
parent 44558701ff
commit 3f2e46a494
28 changed files with 85 additions and 221 deletions

View File

@ -1,3 +1,55 @@
2013-09-04 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].
2013-09-04 Will Newton <will.newton@linaro.org>
* benchtests/bench-timing.h (TIMING_PRINT_MEAN): New macro.

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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@

95
configure vendored
View File

@ -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 :

View File

@ -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

View File

@ -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

View File

@ -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");

View File

@ -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");

View File

@ -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

View File

@ -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), \

View File

@ -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

View File

@ -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

View File

@ -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))

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,3 +1,9 @@
2013-09-04 Joseph Myers <joseph@codesourcery.com>
* sysdeps/unix/sysv/linux/x86_64/cancellation.S
[SHARED && DO_VERSIONING && !NO_HIDDEN]: Change conditional to
[SHARED && !NO_HIDDEN].
2013-09-03 Siddhesh Poyarekar <siddhesh@redhat.com>
[BZ #15921]

View File

@ -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

View File

@ -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

View File

@ -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 \

View File

@ -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

View File

@ -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);

View File

@ -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) \

View File

@ -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

View File

@ -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

View File

@ -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);