* [Patch, Darwin] enable mdynamic-no-pic bootstrap for x86-darwin.
@ 2010-11-03 11:59 IainS
2010-11-03 17:54 ` Mike Stump
0 siblings, 1 reply; 3+ messages in thread
From: IainS @ 2010-11-03 11:59 UTC (permalink / raw)
To: GCC Patches; +Cc: Paolo Bonzini, Mike Stump
Hello,
Most of this patch is already approved (or pre-approved) in [1]
However, I took Paolo's observation that the plugin-supports .exp
could be used as the place to deal with filtering the flag - it seems
a more natural place to handle the issue.
(So that change, the last hunk below, needs review, thanks)
OK for trunk?
Iain
P.S. The change to gcc/configure will also enable plugins on powerpc-
darwin (which already bootstraps with -mdynamic-no-pic)
[1] http://gcc.gnu.org/ml/gcc-patches/2010-10/msg02701.html and follow-
ups.
====
:
* configure.ac (*-*-darwin*): Use mh-darwin for all Darwin variants.
* configure: Regenerate.
* config/mh-ppc-darwin: Rename to mh-darwin.
gcc:
* gcc/configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing
for
plugin capabilities.
* gcc/configure: Regenerate.
gcc/testsuite:
* lib/plugin-support.exp (plugin-test-execute): Filter -mdynamic-no-
pic from
plugin build flags on Darwin targets.
Index: configure.ac
===================================================================
--- configure.ac (revision 166233)
+++ configure.ac (working copy)
@@ -1157,8 +1157,8 @@ case "${host}" in
tentative_cc="/usr/cygnus/progressive/bin/gcc"
host_makefile_frag="config/mh-lynxrs6k"
;;
- powerpc-*-darwin*)
- host_makefile_frag="config/mh-ppc-darwin"
+ *-*-darwin*)
+ host_makefile_frag="config/mh-darwin"
;;
powerpc-*-aix*)
host_makefile_frag="config/mh-ppc-aix"
Index: gcc/configure.ac
===================================================================
--- gcc/configure.ac (revision 166233)
+++ gcc/configure.ac (working copy)
@@ -4694,11 +4694,15 @@ if test x"$enable_plugin" = x"yes"; then
# Check that we can build shared objects with -fPIC -shared
saved_LDFLAGS="$LDFLAGS"
+ saved_CFLAGS="$CFLAGS"
case "${host}" in
*-*-darwin*)
- LDFLAGS="$LDFLAGS -fPIC -shared -undefined dynamic_lookup"
+ CFLAGS=`echo $CFLAGS | sed s/-mdynamic-no-pic//g`
+ CFLAGS="$CFLAGS -fPIC"
+ LDFLAGS="$LDFLAGS -shared -undefined dynamic_lookup"
;;
*)
+ CFLAGS="$CFLAGS -fPIC"
LDFLAGS="$LDFLAGS -fPIC -shared"
;;
esac
@@ -4712,6 +4716,7 @@ if test x"$enable_plugin" = x"yes"; then
enable_plugin=no
fi
LDFLAGS="$saved_LDFLAGS"
+ CFLAGS="$saved_CFLAGS"
# If plugin support had been requested but not available, fail.
if test x"$enable_plugin" = x"no" ; then
Index: gcc/testsuite/lib/plugin-support.exp
===================================================================
--- gcc/testsuite/lib/plugin-support.exp (revision 166233)
+++ gcc/testsuite/lib/plugin-support.exp (working copy)
@@ -86,15 +86,29 @@ proc plugin-test-execute { plugin_src plugin_tests
-I${gcc_srcdir}/include -I${gcc_srcdir}/libcpp/
include \
$GMPINC -I${gcc_objdir}/intl"
- set optstr "$includes $extra_flags -DIN_GCC -fPIC -shared"
-
if { [ ishost *-*-darwin* ] } {
- set optstr [concat $optstr "-undefined dynamic_lookup"]
+ # -mdynamic-no-pic is incompatible with -fPIC.
+ set plug_cflags ""
+ foreach op $PLUGINCFLAGS {
+ if { [string compare "-mdynamic-no-pic" $op] } {
+ set plug_cflags [concat $plug_cflags " $op"]
+ }
+ }
+ set optstr "$includes"
+ foreach op $extra_flags {
+ if { [string compare "-mdynamic-no-pic" $op] } {
+ set optstr [concat $optstr " $op"]
+ }
+ }
+ set optstr [concat $optstr "-DIN_GCC -fPIC -shared -undefined
dynamic_lookup"]
+ } else {
+ set plug_cflags $PLUGINCFLAGS
+ set optstr "$includes $extra_flags -DIN_GCC -fPIC -shared"
}
# Temporarily switch to the environment for the plugin compiler.
restore_ld_library_path_env_vars
- set status [remote_exec build "$PLUGINCC $PLUGINCFLAGS
$plugin_src $optstr -o $plugin_lib"]
+ set status [remote_exec build "$PLUGINCC $plug_cflags $plugin_src
$optstr -o $plugin_lib"]
set status [lindex $status 0]
set_ld_library_path_env_vars
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Patch, Darwin] enable mdynamic-no-pic bootstrap for x86-darwin.
2010-11-03 11:59 [Patch, Darwin] enable mdynamic-no-pic bootstrap for x86-darwin IainS
@ 2010-11-03 17:54 ` Mike Stump
2010-11-04 11:14 ` IainS
0 siblings, 1 reply; 3+ messages in thread
From: Mike Stump @ 2010-11-03 17:54 UTC (permalink / raw)
To: IainS; +Cc: GCC Patches, Paolo Bonzini, Mike Stump
On Nov 3, 2010, at 4:47 AM, IainS wrote:
> However, I took Paolo's observation that the plugin-supports .exp could be used as the place to deal with filtering the flag - it seems a more natural place to handle the issue.
> OK for trunk?
Ok.
Longer term, I kinda wish we had more fine grained make variables (for shared/non-shared flags)...
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Patch, Darwin] enable mdynamic-no-pic bootstrap for x86-darwin.
2010-11-03 17:54 ` Mike Stump
@ 2010-11-04 11:14 ` IainS
0 siblings, 0 replies; 3+ messages in thread
From: IainS @ 2010-11-04 11:14 UTC (permalink / raw)
To: GCC Patches; +Cc: Mike Stump
On 3 Nov 2010, at 17:51, Mike Stump wrote:
> On Nov 3, 2010, at 4:47 AM, IainS wrote:
>> However, I took Paolo's observation that the plugin-supports .exp
>> could be used as the place to deal with filtering the flag - it
>> seems a more natural place to handle the issue.
>
>> OK for trunk?
>
> Ok.
thanks , r166302,
Iain
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-11-04 11:13 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-11-03 11:59 [Patch, Darwin] enable mdynamic-no-pic bootstrap for x86-darwin IainS
2010-11-03 17:54 ` Mike Stump
2010-11-04 11:14 ` IainS
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).