> On Dec 6, 2017, at 20:09, Ken Cunningham <ken.cunningham.web...@gmail.com> 
> wrote:
> 
> 
> On 2017-12-06, at 12:19 PM, Ken Cunningham wrote:
> 
>> There have been a number of tickets over the past two years that relate to 
>> compiler selection on PPC systems.
>> 
>> Basically, on PPC, if the default compiler (gcc 4.2 on 10.5, or apple-gcc42 
>> on Tiger) does not work to build a port, the only other compiler that should 
>> be then used is gcc6. Maybe someday this might be gcc7, if we fix up the 
>> extra errors found in gcc7.
>> 
>> Presently, however, PPC systems go down the same compiler selection path as 
>> Intel systems. That usually leads to clang 3.3 or clang 3.4 being selected, 
>> and this always fails miserably on PPC.
>> 
>> Finally, there are a number of ports that blacklist all gcc compilers like 
>> this *gcc* . This is often appropriate for Intel systems, but completely 
>> wrong for PPC. So I don't know if it is possible to clear or ignore that 
>> setting in a Portfile -- probably not, but when I set the default_compiler 
>> in macports.conf, it does appear override that setting, so maybe it is 
>> possible.
>> 
>> Thanks,
>> 
>> Ken
> 
> 
> I think the part of code that would need fixing is in portconfigure.tcl, in 
> this block:
> 
>   # Legacy cases
>   if {[vercmp $xcodeversion 4.0] < 0} {
>       if {[vercmp $xcodeversion 3.2] >= 0} {
>           if {[string match *10.4u* ${configure.sdkroot}]} {
>               return {gcc-4.0}
>           }
>       } elseif {[vercmp $xcodeversion 3.0] >= 0} {
>           return {gcc-4.2 apple-gcc-4.2 gcc-4.0 macports-clang-3.4 
> macports-clang-3.3}
>       } else {
>           return {apple-gcc-4.2 gcc-4.0 gcc-3.3 macports-clang-3.3}
>       }
>   }
> 
> 
> ===================
> 
> if I were to put in an appropriate PPC build arch test there, and change the 
> returned compilers for ppc to return something like the following, we should 
> be OK. Just have to figure out the right kind of build.arch test to use in 
> portconfigure.tcl:
> 
>       } elseif {[vercmp $xcodeversion 3.0] >= 0} {
>           return {gcc-4.2 apple-gcc-4.2 gcc-4.0 macports-gcc-6}
>       } else {
>           return {apple-gcc-4.2 gcc-4.0 macports-gcc-6}

macports-gcc-6 is also not capable of building fat binaries, so +universal 
won't work with it.  If you're interested, you can maybe take the gcc 
driver-driver out of apple-gcc-4.2 (or llvm-gcc-4.2) and update it to work for 
macports-gcc.

Reply via email to