Pass $PLT_CFLAGS to ld_compile
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 27 Jul 2015 12:15:01 +0000 (05:15 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 27 Jul 2015 12:15:01 +0000 (05:15 -0700)
Some linker visibility tests without PIC expect PLT.  This patch passes
$PLT_CFLAGS to ld_compile.

* ld-elfvsb/elfvsb.exp (visibility_run): Pass $PLT_CFLAGS to
ld_compile.

ld/testsuite/ChangeLog
ld/testsuite/ld-elfvsb/elfvsb.exp

index b2e85ed6fdfe90b07b5022827a0528e348620eef..bac91723be2a9f23439bcc63826dc59cc11927b1 100644 (file)
@@ -1,3 +1,8 @@
+2015-07-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * ld-elfvsb/elfvsb.exp (visibility_run): Pass $PLT_CFLAGS to
+       ld_compile.
+
 2015-07-27  H.J. Lu  <hongjiu.lu@intel.com>
 
        * ld-elfvers/vers.exp (build_vers_lib_no_pic): Pass $PLT_CFLAGS
index 8ae8c3d934db68aa0a32fe14647cb95e8cdf3d76..e02d4faeee2b0d5495a0f39395013950bbd8e88e 100644 (file)
@@ -227,6 +227,7 @@ proc visibility_run {visibility} {
     global target_triplet
     global support_protected
     global shared_needs_pic
+    global PLT_CFLAGS
 
     if [ string match $visibility "hidden" ] {
        set VSBCFLAG "-DHIDDEN_TEST"
@@ -259,8 +260,9 @@ proc visibility_run {visibility} {
        # functions and variables not being overridable.  Newer versions
        # of gcc are more likely to do this.
     } else {
-    # Compile the main program.
-    if ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.o] {
+    # Compile the main program.  Make sure that PLT is used since PLT
+    # is expected.
+    if ![ld_compile "$CC -g $PLT_CFLAGS $CFLAGS $SHCFLAG $VSBCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.o] {
        unresolved "visibility ($visibility) (non PIC)"
        unresolved "visibility ($visibility)"
     } else {
@@ -269,9 +271,9 @@ proc visibility_run {visibility} {
        # although it will be less efficient because the dynamic linker
        # will need to do more relocation work.  However, note that not
        # using -fpic will cause some of the tests to return different
-       # results.
-       if { ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG" $srcdir/$subdir/sh1.c $tmpdir/sh1np.o]
-            || ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG" $srcdir/$subdir/sh2.c $tmpdir/sh2np.o] } {
+       # results.  Make sure that PLT is used since PLT is expected.
+       if { ![ld_compile "$CC -g $PLT_CFLAGS $CFLAGS $SHCFLAG $VSBCFLAG" $srcdir/$subdir/sh1.c $tmpdir/sh1np.o]
+            || ![ld_compile "$CC -g $PLT_CFLAGS $CFLAGS $SHCFLAG $VSBCFLAG" $srcdir/$subdir/sh2.c $tmpdir/sh2np.o] } {
            unresolved "visibility ($visibility) (non PIC)"
        } else { if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } {
            visibility_test $visibility vnp "visibility ($visibility) (non PIC)" mainnp.o sh1np.o sh2np.o xcoff