> On Dec 17, 2017, at 12:02 AM, Jeremy Huddleston Sequoia <jerem...@apple.com> 
> wrote:
> 
> 
> 
>> 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.

Thanks for the comments.

It would be neat if we could build a multi-arch cross-compiling gcc6 or gcc7 
again, but a niche product to be sure.

The driver-driver.c work has been done by others to allow it to work with 
gcc4.6 to gcc4.9, so shouldn't be too hard to move that up to gcc6/7.  

K

Reply via email to