aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2002-02-26 22:39:07 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2002-02-26 22:39:07 +0100
commit9e944a165da7e84b70f4b136a7e9992f4638c8ad (patch)
tree0ff3a55229491e9fe2660b27d0374050b51b2306
parent47bd70b56aa4ccc10fd0e90a7fae4c94d991bb30 (diff)
downloadgcc-9e944a165da7e84b70f4b136a7e9992f4638c8ad.zip
gcc-9e944a165da7e84b70f4b136a7e9992f4638c8ad.tar.gz
gcc-9e944a165da7e84b70f4b136a7e9992f4638c8ad.tar.bz2
configure.in (libgcc_visibility): Substitute.
* configure.in (libgcc_visibility): Substitute. * configure: Rebuilt. * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global defined symbols .hidden. From-SVN: r50063
-rw-r--r--gcc/ChangeLog7
-rwxr-xr-xgcc/configure3
-rw-r--r--gcc/configure.in2
-rw-r--r--gcc/mklibgcc.in18
4 files changed, 28 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6228321..30d2700 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
2002-02-26 Jakub Jelinek <jakub@redhat.com>
+ * 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 <jakub@redhat.com>
+
* 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 99d1f33..10fed03 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 0c7e333..6e6fb6b 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 bcc03e2..061f570 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;'