From e8c2499bb6cced3aea9d79e579e2ffb8b2acb38c Mon Sep 17 00:00:00 2001 From: jakub Date: Tue, 26 Feb 2002 21:39:07 +0000 Subject: [PATCH] * configure.in (libgcc_visibility): Substitute. * configure: Rebuilt. * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global defined symbols .hidden. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50063 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 7 +++++++ gcc/configure | 3 +++ gcc/configure.in | 2 ++ gcc/mklibgcc.in | 18 ++++++++++++++++-- 4 files changed, 28 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 62283213c34..30d2700aefe 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 2002-02-26 Jakub Jelinek + * configure.in (libgcc_visibility): Substitute. + * configure: Rebuilt. + * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global + defined symbols .hidden. + +2002-02-26 Jakub Jelinek + * attribs.c (c_common_attribute_table): Add visibility. (handle_visibility_attribute): New function. * varasm.c (assemble_visibility): New function. diff --git a/gcc/configure b/gcc/configure index 99d1f337c64..10fed033979 100755 --- a/gcc/configure +++ b/gcc/configure @@ -7147,6 +7147,8 @@ EOF fi echo "$ac_t""$gcc_cv_as_hidden" 1>&6 +libgcc_visibility=$gcc_cv_as_hidden + echo $ac_n "checking assembler leb128 support""... $ac_c" 1>&6 echo "configure:7153: checking assembler leb128 support" >&5 @@ -8394,6 +8396,7 @@ s%@HOST_CC@%$HOST_CC%g s%@HOST_CFLAGS@%$HOST_CFLAGS%g s%@STMP_FIXINC@%$STMP_FIXINC%g s%@STMP_FIXPROTO@%$STMP_FIXPROTO%g +s%@libgcc_visibility@%$libgcc_visibility%g s%@gthread_flags@%$gthread_flags%g s%@GGC@%$GGC%g s%@zlibdir@%$zlibdir%g diff --git a/gcc/configure.in b/gcc/configure.in index 0c7e333f191..6e6fb6bfb40 100644 --- a/gcc/configure.in +++ b/gcc/configure.in @@ -1484,6 +1484,8 @@ if test x"$gcc_cv_as_hidden" = xyes; then [Define if your assembler supports .hidden.]) fi AC_MSG_RESULT($gcc_cv_as_hidden) +libgcc_visibility=$gcc_cv_as_hidden +AC_SUBST(libgcc_visibility) AC_MSG_CHECKING(assembler leb128 support) gcc_cv_as_leb128=no diff --git a/gcc/mklibgcc.in b/gcc/mklibgcc.in index bcc03e26c3b..061f570c974 100644 --- a/gcc/mklibgcc.in +++ b/gcc/mklibgcc.in @@ -270,10 +270,24 @@ for ml in $MULTILIBS; do shlib_deps="$shlib_deps $dir/$f" done + libgcc_a_objs="$libgcc_objs $libgcc_st_objs" + + if [ "@libgcc_visibility@" = yes ]; then + libgcc_a_objs=`echo "${libgcc_a_objs} " | sed s~${objext}' ~.oS ~g'` + + # .oS objects will have all non-local symbol definitions .hidden + echo "" + echo "$libgcc_a_objs: libgcc/${dir}/%.oS: libgcc/${dir}/%${objext}" + echo " @\$(NM_FOR_TARGET) $SHLIB_NM_FLAGS \$^" \\ + echo " | \$(AWK) 'NF == 3 { printf \".hidden %s\\n\", \$\$3 }'" \\ + echo ' | $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -Wl,-r -nostdinc' \\ + echo ' -nostdlib -o $@ $^ -xassembler -' + fi + echo "" - echo "${dir}/libgcc.a: $libgcc_objs $libgcc_st_objs" + echo "${dir}/libgcc.a: $libgcc_a_objs" echo " -rm -rf ${dir}/libgcc.a" - echo ' $(AR_CREATE_FOR_TARGET)' ${dir}/libgcc.a $libgcc_objs $libgcc_st_objs + echo ' $(AR_CREATE_FOR_TARGET)' ${dir}/libgcc.a $libgcc_a_objs echo ' if $(RANLIB_TEST_FOR_TARGET) ; then' \\ echo ' $(RANLIB_FOR_TARGET)' ${dir}/libgcc.a ';' \\ echo ' else true; fi;' -- 2.11.0