r288669 breaks ports building with USE_GCC=yes

Justin Hibbits jrh29 at alumni.cwru.edu
Tue Oct 13 01:28:08 UTC 2015


Hi Pedro,

On Oct 12, 2015, at 7:23 PM, Pedro Giffuni wrote:

>
>
> On 10/12/2015 3:33 PM, Justin Hibbits wrote:
>> Hi Pedro,
>>
>> On Mon, Oct 12, 2015 at 3:28 PM, Pedro Giffuni <pfg at freebsd.org>  
>> wrote:
>>> Hi again;
>>>
>>> On 12/10/2015 03:16 p.m., Pedro Giffuni wrote:
>>>> Hello;
>>>>
>>>> On 12/10/2015 02:56 p.m., Justin Hibbits wrote:
>>>>> The default ports gcc for USE_GCC is still 4.8, which does not  
>>>>> support
>>>>> -fstack-protector-strong.  This breaks several ports including  
>>>>> (from
>>>>> my poudriere run): libfpx and qt4-sqlite3-plugin.
>>>>>
>>>>> - Justin
>>>>
>>>> r288669 only applies to base. It was tested with an exp-run and  
>>>> there were
>>>> no
>>>> failures so this is something wrong in your setup.
>>>>
>>> Ugh ... now that I remember, we actually used -stack-protector-all  
>>> for the
>>> exp-run
>>> (which is supported in pretty much every gcc).
>>>
>>> Still, the change should only apply to the base system and not  
>>> ports, and
>>> -stack-protector-strong appears to have been backported to gcc48
>>> last year (see PR 186852).
>>>
>>> cheers,
>>>
>>> Pedro.
>>>
>> All I can say is building with USE_GCC=yes, I see the following  
>> error:
>>
>> g++48: error: unrecognized command line option '-fstack-protector- 
>> strong'
>>
>> This is using the latest gcc48 in ports (full tree updated  
>> yesterday).
>
> OK, I tested graphics/libfpx on i386-current:
>
> -stack-protector-strong indeed gets pulled in due to some non-orthodox
> workarounds in files/Makefile.bsd.
>
> g++48 accepts it just fine and the port compiles.
>
> Is this a platform that has GCC issues, perhaps? It looks like one  
> of those
> "unfortunately series of events" that may have to be fixed in the port
> and/or gcc48.
>
> Pedro.
>

This is on powerpc64.  I see the patch has been there for 16 months,  
but for some reason, the /usr/local/bin/gcc48 doesn't contain the  
patch.  I ran `strings` on the binary, and it has the following string:

%{fstack-protector|fstack-protector-all:-lssp_nonshared}

Which, if you examine files/patch-stackprotector-gcc, is the unpatched  
string.

I have no idea why this is the case.

- Justin


More information about the freebsd-current mailing list