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>
|
||||
|
||||
* 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 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 ""
|
||||
} else {
|
||||
# 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
|
||||
}
|
||||
|
||||
if [istarget x86_64-*-linux*] {
|
||||
# x86_64 doesn't like non-pic shared libraries
|
||||
if { [istarget x86_64-*-linux*] \
|
||||
|| ( [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"
|
||||
} else {
|
||||
set pic "no"
|
||||
|
@ -249,7 +249,8 @@ proc visibility_run {visibility} {
|
||||
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.
|
||||
# If you don't pass -fpic or -fPIC to gcc, gcc will assume quite
|
||||
# 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 ""
|
||||
} else {
|
||||
# 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
|
||||
}
|
||||
|
||||
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 ""
|
||||
} else {
|
||||
# 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"
|
||||
}
|
||||
|
||||
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 ""
|
||||
} else {
|
||||
# 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
|
||||
|
||||
# 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.
|
||||
#
|
||||
proc default_ld_version { ld } {
|
||||
|
Loading…
Reference in New Issue
Block a user