aboutsummaryrefslogtreecommitdiff
path: root/gcc/mklibgcc.in
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2003-06-06 16:30:31 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2003-06-06 16:30:31 +0200
commit744f6f0984e3b00f2dc1d451087543526e1cc672 (patch)
treedd8fdb23b5b03f3557d1a5c079442eababab293a /gcc/mklibgcc.in
parentc220e3a948cc132c6177d0563b2e8c119231bef9 (diff)
downloadgcc-744f6f0984e3b00f2dc1d451087543526e1cc672.zip
gcc-744f6f0984e3b00f2dc1d451087543526e1cc672.tar.gz
gcc-744f6f0984e3b00f2dc1d451087543526e1cc672.tar.bz2
mklibgcc.in: Propagate .note.GNU-stack section if needed into the .hidden assembly stubs.
* mklibgcc.in: Propagate .note.GNU-stack section if needed into the .hidden assembly stubs. From-SVN: r67545
Diffstat (limited to 'gcc/mklibgcc.in')
-rw-r--r--gcc/mklibgcc.in9
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/mklibgcc.in b/gcc/mklibgcc.in
index 975726b..6fcabfc 100644
--- a/gcc/mklibgcc.in
+++ b/gcc/mklibgcc.in
@@ -339,11 +339,15 @@ EOF
if [ "@libgcc_visibility@" = yes -a "$SHLIB_LINK" ]; then
libgcc_a_objs=
echo ""
+ echo "libgcc/${dir}/stacknote.s: stmp-dirs"
+ echo ' @( echo | $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) '${flags}' -S -o - -xc - | grep .note.GNU-stack || : ) > $@.tmp'
+ echo ' @mv -f $@.tmp $@'
+ echo ""
for o in $libgcc_objs $libgcc_st_objs; do
# .oS objects will have all non-local symbol definitions .hidden
oS=`echo ${o} | sed s~${objext}'$~.oS~g'`
- echo "${oS}: stmp-dirs ${o}"
- echo ' $(NM_FOR_TARGET) '${SHLIB_NM_FLAGS} ${o}' | $(AWK) '\''NF == 3 { print "\t.hidden", $$3 }'\'' | $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) '${flags}' -r -nostdinc -nostdlib -o $@ '${o}' -xassembler -'
+ echo "${oS}: stmp-dirs libgcc/${dir}/stacknote.s ${o}"
+ echo ' ( $(NM_FOR_TARGET) '${SHLIB_NM_FLAGS} ${o}' | $(AWK) '\''NF == 3 { print "\t.hidden", $$3 }'\''; cat libgcc/${dir}/stacknote.s ) | $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) '${flags}' -r -nostdinc -nostdlib -o $@ '${o}' -xassembler -'
libgcc_a_objs="${libgcc_a_objs} ${oS}"
done
fi
@@ -430,6 +434,7 @@ echo ' if [ -d $(stage)/$$dir ]; then true; else '$mkinstalldirs' $(stage)/$$d
echo ' done'
echo ' -for dir in '"${dirs}"'; do \'
echo ' mv $$dir/*'"${objext}"' $(stage)/$$dir; \'
+echo ' test ! -f $$dir/stacknote.s || mv $$dir/stacknote.s $(stage)/$$dir; \'
echo ' test ! -f $$dir/libgcc.a || mv $$dir/lib* $(stage)/$$dir; \'
echo ' done'