|
|
|
@ -198,6 +198,7 @@ proc visibility_run {visibility} { |
|
|
|
global NOPIE_CFLAGS |
|
|
|
global COMPRESS_LDFLAG |
|
|
|
global NOSANITIZE_CFLAGS |
|
|
|
global NOLTO_CFLAGS |
|
|
|
|
|
|
|
if [ string match $visibility "hidden" ] { |
|
|
|
set VSBCFLAG "-DHIDDEN_TEST" |
|
|
|
@ -236,7 +237,7 @@ proc visibility_run {visibility} { |
|
|
|
} else { |
|
|
|
# Compile the main program. Make sure that PLT is used since PLT |
|
|
|
# is expected. |
|
|
|
if ![ld_compile "$CC -g $PLT_CFLAGS $CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS" $srcdir/$subdir/main.c $tmpdir/mainnp.o] { |
|
|
|
if ![ld_compile "$CC -g $PLT_CFLAGS $CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" $srcdir/$subdir/main.c $tmpdir/mainnp.o] { |
|
|
|
unresolved "visibility ($visibility) (non PIC)" |
|
|
|
unresolved "visibility ($visibility)" |
|
|
|
} else { |
|
|
|
@ -246,8 +247,8 @@ proc visibility_run {visibility} { |
|
|
|
# will need to do more relocation work. However, note that not |
|
|
|
# using -fpic will cause some of the tests to return different |
|
|
|
# results. Make sure that PLT is used since PLT is expected. |
|
|
|
if { ![ld_compile "$CC -g $NOPIE_CFLAGS $PLT_CFLAGS $CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS" $srcdir/$subdir/sh1.c $tmpdir/sh1np.o] |
|
|
|
|| ![ld_compile "$CC -g $NOPIE_CFLAGS $PLT_CFLAGS $CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS" $srcdir/$subdir/sh2.c $tmpdir/sh2np.o] } { |
|
|
|
if { ![ld_compile "$CC -g $NOPIE_CFLAGS $PLT_CFLAGS $CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" $srcdir/$subdir/sh1.c $tmpdir/sh1np.o] |
|
|
|
|| ![ld_compile "$CC -g $NOPIE_CFLAGS $PLT_CFLAGS $CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" $srcdir/$subdir/sh2.c $tmpdir/sh2np.o] } { |
|
|
|
unresolved "visibility ($visibility) (non PIC)" |
|
|
|
} else { |
|
|
|
# SunOS non PIC shared libraries don't permit some cases of |
|
|
|
@ -335,8 +336,8 @@ proc visibility_run {visibility} { |
|
|
|
|
|
|
|
# Now compile the code using -fpic. |
|
|
|
|
|
|
|
if { ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS -DSHARED $picflag" $srcdir/$subdir/sh1.c $tmpdir/sh1p.o] |
|
|
|
|| ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS -DSHARED $picflag" $srcdir/$subdir/sh2.c $tmpdir/sh2p.o] } { |
|
|
|
if { ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS $NOLTO_CFLAGS -DSHARED $picflag" $srcdir/$subdir/sh1.c $tmpdir/sh1p.o] |
|
|
|
|| ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS $NOLTO_CFLAGS -DSHARED $picflag" $srcdir/$subdir/sh2.c $tmpdir/sh2p.o] } { |
|
|
|
unresolved "visibility ($visibility)" |
|
|
|
} else { |
|
|
|
if { [ string match $visibility "protected" ] |
|
|
|
@ -353,7 +354,7 @@ proc visibility_run {visibility} { |
|
|
|
# Don't bother. |
|
|
|
} else { |
|
|
|
# Now do the same tests again, but this time compile main.c PIC. |
|
|
|
if ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS -DSHARED $picflag" $srcdir/$subdir/main.c $tmpdir/mainp.o] { |
|
|
|
if ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS $NOLTO_CFLAGS -DSHARED $picflag" $srcdir/$subdir/main.c $tmpdir/mainp.o] { |
|
|
|
unresolved "visibility ($visibility) (PIC main, non PIC so)" |
|
|
|
unresolved "visibility ($visibility) (PIC main)" |
|
|
|
} else { |
|
|
|
@ -445,7 +446,7 @@ visibility_run protected_undef_def |
|
|
|
visibility_run protected_weak |
|
|
|
visibility_run normal |
|
|
|
|
|
|
|
if { ![ld_compile "$CC -g $CFLAGS $NOSANITIZE_CFLAGS" $srcdir/$subdir/common.c tmpdir/common.o] } { |
|
|
|
if { ![ld_compile "$CC -g $CFLAGS $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" $srcdir/$subdir/common.c tmpdir/common.o] } { |
|
|
|
unresolved "common hidden symbol" |
|
|
|
} else { |
|
|
|
if ![ld_link $ld tmpdir/common "tmpdir/common.o"] { |
|
|
|
@ -455,10 +456,10 @@ if { ![ld_compile "$CC -g $CFLAGS $NOSANITIZE_CFLAGS" $srcdir/$subdir/common.c t |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if { ![ld_compile "$CC -g $CFLAGS $NOSANITIZE_CFLAGS" $srcdir/$subdir/test.c tmpdir/test.o] } { |
|
|
|
if { ![ld_compile "$CC -g $CFLAGS $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" $srcdir/$subdir/test.c tmpdir/test.o] } { |
|
|
|
unresolved "weak hidden symbol" |
|
|
|
} else { |
|
|
|
if { ![ld_compile "$CC -g $CFLAGS $NOSANITIZE_CFLAGS -DSHARED $picflag" $srcdir/$subdir/sh3.c tmpdir/sh3.o] } { |
|
|
|
if { ![ld_compile "$CC -g $CFLAGS $NOSANITIZE_CFLAGS $NOLTO_CFLAGS -DSHARED $picflag" $srcdir/$subdir/sh3.c tmpdir/sh3.o] } { |
|
|
|
unresolved "weak hidden symbol" |
|
|
|
} else { |
|
|
|
if ![ld_link $ld tmpdir/sh3.so "-shared tmpdir/sh3.o"] { |
|
|
|
|