2011-12-15 David Daney <david.daney@cavium.com>
Nick Clifton <nickc@redhat.com> * ld-elfvers/vers.exp (picflag): Set to -fpic for mips*-*-* when using GCC-4.3 or later. (pic): Set to "yes" for mips*-*-linux*. * ld-elfvsb/elfvsb.exp: Don't test non-PIC shared libraried on mips*-*-linux*. (picflag): Set to -fpic for mips*-*-* when using GCC-4.3 or later. * ld-elfweak/elfweak.exp (picflag): Set to -fpic for mips*-*-* when using GCC-4.3 or later. * ld-shared/shared.exp (picflag): Same. * lib/ld-lib.exp (at_least_gcc_version): New proc.
This commit is contained in:
parent
083a553414
commit
fb35d3d8fa
|
@ -1,3 +1,17 @@
|
||||||
|
2011-12-15 David Daney <david.daney@cavium.com>
|
||||||
|
Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
|
* ld-elfvers/vers.exp (picflag): Set to -fpic for mips*-*-* when
|
||||||
|
using GCC-4.3 or later.
|
||||||
|
(pic): Set to "yes" for mips*-*-linux*.
|
||||||
|
* ld-elfvsb/elfvsb.exp: Don't test non-PIC shared libraried on
|
||||||
|
mips*-*-linux*.
|
||||||
|
(picflag): Set to -fpic for mips*-*-* when using GCC-4.3 or later.
|
||||||
|
* ld-elfweak/elfweak.exp (picflag): Set to -fpic for mips*-*-*
|
||||||
|
when using GCC-4.3 or later.
|
||||||
|
* ld-shared/shared.exp (picflag): Same.
|
||||||
|
* lib/ld-lib.exp (at_least_gcc_version): New proc.
|
||||||
|
|
||||||
2011-12-10 David Daney <david.daney@cavium.com>
|
2011-12-10 David Daney <david.daney@cavium.com>
|
||||||
|
|
||||||
* ld-mips-elf/pic-and-nonpic-6-n64.dd: Use correct encoding for
|
* ld-mips-elf/pic-and-nonpic-6-n64.dd: Use correct encoding for
|
||||||
|
|
|
@ -72,7 +72,9 @@ set SOBJDUMP_FLAGS --syms
|
||||||
set shared "--shared --no-undefined-version"
|
set shared "--shared --no-undefined-version"
|
||||||
set script --version-script
|
set script --version-script
|
||||||
|
|
||||||
if [istarget mips*-*-*] {
|
# Old version of GCC for MIPS default to enabling -fpic
|
||||||
|
# and get confused if it is used on the command line.
|
||||||
|
if { [istarget mips*-*-*] && ! [at_least_gcc_version 4 3] } then {
|
||||||
set picflag ""
|
set picflag ""
|
||||||
} else {
|
} else {
|
||||||
# Unfortunately, the gcc argument is -fpic and the cc argument is
|
# Unfortunately, the gcc argument is -fpic and the cc argument is
|
||||||
|
@ -768,8 +770,9 @@ proc build_exec { test source execname flags solibname verexp versymexp symexp }
|
||||||
pass $test
|
pass $test
|
||||||
}
|
}
|
||||||
|
|
||||||
if [istarget x86_64-*-linux*] {
|
if { [istarget x86_64-*-linux*] \
|
||||||
# x86_64 doesn't like non-pic shared libraries
|
|| ( [istarget mips*-*-linux*] && [at_least_gcc_version 4 3] ) } {
|
||||||
|
# x86_64 and newer MIPS toolchains do not like non-pic shared libraries
|
||||||
set pic "yes"
|
set pic "yes"
|
||||||
} else {
|
} else {
|
||||||
set pic "no"
|
set pic "no"
|
||||||
|
|
|
@ -249,7 +249,8 @@ proc visibility_run {visibility} {
|
||||||
set VSBCFLAG ""
|
set VSBCFLAG ""
|
||||||
}}}}}}}}}
|
}}}}}}}}}
|
||||||
|
|
||||||
if { [istarget powerpc*-*-linux*] } {
|
if { [istarget powerpc*-*-linux*] \
|
||||||
|
|| ( [istarget mips*-*-linux*] && [at_least_gcc_version 4 3] )} {
|
||||||
# Testing non-PIC libraries is a waste of effort on any target.
|
# Testing non-PIC libraries is a waste of effort on any target.
|
||||||
# If you don't pass -fpic or -fPIC to gcc, gcc will assume quite
|
# If you don't pass -fpic or -fPIC to gcc, gcc will assume quite
|
||||||
# reasonably that you are not compiling for a shared library.
|
# reasonably that you are not compiling for a shared library.
|
||||||
|
@ -453,7 +454,9 @@ proc visibility_run {visibility} {
|
||||||
}}
|
}}
|
||||||
}
|
}
|
||||||
|
|
||||||
if [istarget mips*-*-*] {
|
# Old version of GCC for MIPS default to enabling -fpic
|
||||||
|
# and get confused if it is used on the command line.
|
||||||
|
if { [istarget mips*-*-*] && ! [at_least_gcc_version 4 3] } then {
|
||||||
set picflag ""
|
set picflag ""
|
||||||
} else {
|
} else {
|
||||||
# Unfortunately, the gcc argument is -fpic and the cc argument is
|
# Unfortunately, the gcc argument is -fpic and the cc argument is
|
||||||
|
|
|
@ -370,7 +370,9 @@ proc build_exec { test execname objs flags dat dynsymexp symexp} {
|
||||||
pass $test
|
pass $test
|
||||||
}
|
}
|
||||||
|
|
||||||
if [istarget mips*-*-*] {
|
# Old version of GCC for MIPS default to enabling -fpic
|
||||||
|
# and get confused if it is used on the command line.
|
||||||
|
if { [istarget mips*-*-*] && ! [at_least_gcc_version 4 3] } then {
|
||||||
set picflag ""
|
set picflag ""
|
||||||
} else {
|
} else {
|
||||||
# Unfortunately, the gcc argument is -fpic and the cc argument is
|
# Unfortunately, the gcc argument is -fpic and the cc argument is
|
||||||
|
|
|
@ -181,7 +181,9 @@ proc shared_test { progname testname main sh1 sh2 dat args } {
|
||||||
pass "$testname"
|
pass "$testname"
|
||||||
}
|
}
|
||||||
|
|
||||||
if [istarget mips*-*-*] {
|
# Old version of GCC for MIPS default to enabling -fpic
|
||||||
|
# and get confused if it is used on the command line.
|
||||||
|
if { [istarget mips*-*-*] && ! [at_least_gcc_version 4 3] } then {
|
||||||
set picflag ""
|
set picflag ""
|
||||||
} else {
|
} else {
|
||||||
# Unfortunately, the gcc argument is -fpic and the cc argument is
|
# Unfortunately, the gcc argument is -fpic and the cc argument is
|
||||||
|
|
|
@ -27,6 +27,31 @@ proc load_common_lib { name } {
|
||||||
|
|
||||||
load_common_lib binutils-common.exp
|
load_common_lib binutils-common.exp
|
||||||
|
|
||||||
|
# Returns 1 if the gcc for the target is at least version MAJOR.MINOR
|
||||||
|
# Returns 0 otherwise.
|
||||||
|
#
|
||||||
|
proc at_least_gcc_version { major minor } {
|
||||||
|
|
||||||
|
if {![info exists CC]} {
|
||||||
|
set CC [find_gcc]
|
||||||
|
}
|
||||||
|
if { $CC == "" } {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
set state [remote_exec host $CC --version]
|
||||||
|
set tmp "[lindex $state 1]\n"
|
||||||
|
# Look for (eg) 4.6.1 in the version output.
|
||||||
|
regexp " .* (\[1-9\])\\.(\[0-9\])\\.\[0-9\]* .*" "$tmp" fred maj min
|
||||||
|
verbose "gcc version: $tmp"
|
||||||
|
verbose "major gcc version is $maj, want at least $major"
|
||||||
|
if { $maj == $major } then {
|
||||||
|
verbose "minor gcc version is $min, want at least $minor"
|
||||||
|
return [expr $min >= $minor ]
|
||||||
|
} else {
|
||||||
|
return [expr $maj > $major ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# Extract and print the version number of ld.
|
# Extract and print the version number of ld.
|
||||||
#
|
#
|
||||||
proc default_ld_version { ld } {
|
proc default_ld_version { ld } {
|
||||||
|
|
Loading…
Reference in New Issue