On Mon, Jan 12, 2015 at 3:50 PM, Joseph Myers <[email protected]> wrote:
> On Mon, 12 Jan 2015, H.J. Lu wrote:
>
>> +if test x$enable_default_pie = xyes; then
>> + AC_MSG_CHECKING(if $target supports default PIE)
>> + enable_default_pie=no
>> + case $target in
>> + i?86*-*-linux* | x86_64*-*-linux*)
>> + saved_LDFLAGS="$LDFLAGS"
>> + saved_CFLAGS="$CFLAGS"
>> + CFLAGS="$CFLAGS -fPIE"
>> + LDFLAGS="$LDFLAGS -fPIE -pie"
>> + AC_TRY_LINK(,,[enable_default_pie=yes],)
>> + LDFLAGS="$saved_LDFLAGS"
>> + CFLAGS="$saved_CFLAGS"
>> + ;;
>> + *)
>> + ;;
>> + esac
>
> There should not be any such hardcoding of targets here without concrete
> evidence that the targets for which this sets enable_default_pie=no really
> cannot support PIE. In particular, there is no reason at all for this to
> be architecture-specific; all GNU/Linux architectures should support PIE.
I will make the change. Can someone test it on non-x86 Linux?
> I believe AC_TRY_LINK here will test for the host, whereas what you want
> to know is what's supported for the target (but it's not possible to run
> link tests for the target at this point; the compiler for the target
> hasn't even been built).
>
> So: just presume that if the user passes --enable-default-pie then they
> know what they are doing, and don't try to override their choice.
>
>> diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
>> index c9e3bf1..89fc305 100644
>> --- a/gcc/doc/install.texi
>> +++ b/gcc/doc/install.texi
>> @@ -1583,6 +1583,10 @@ not be built.
>> Specify that the run-time libraries for stack smashing protection
>> should not be built.
>>
>> +@item --enable-default-pie
>> +Turn on @option{-fPIE} and @option{-pie} by default if supported.
>> +Currently supported targets are i?86-*-linux* and x86-64-*-linux*.
>
> The "if supported" and target list can then be removed here.
>
I will remove them.
Thanks.
--
H.J.