compile failures in libgcc, gcc49, mariadb-10.0, mariadb-10.1

Ryan Schmidt ryandesign at macports.org
Sun Jun 7 17:09:09 PDT 2015


On Jun 7, 2015, at 2:10 PM, Bjarne D Mathiesen wrote:

> I've got 2 older Mac Mini systems I'm using as headless servers:
> 
> #=> system_profiler SPHardwareDataType SPSoftwareDataType
> Hardware:
>    Hardware Overview:
>        Model Name      : Mac mini                  Mac mini
>        Model Identifier: Macmini2,1                Macmini1,1
>        Processor Name  : Intel Core 2 Duo          Intel Core Duo
>        Processor Speed : 1,83 GHz                  1,83 GHz
>        Number Of Processors    : 1                 1
>        Total Number Of Cores   : 2                 2
>        L2 Cache        : 2 MB                      2 MB
>        Memory          : 2 GB                      2 GB
>        Bus Speed       : 667 MHz                   667 MHz
>        Boot ROM Version: MM21.009A.B00             MM11.0055.B08
>        SMC Version (system)    : 1.19f2            1.3f4
> 
> Software:
>    System Software Overview:
>        System Version  : Mac OS X 10.6.8 (10K549)  Mac OS X 10.6.8 (10K549)
>        Kernel Version  : Darwin 10.8.0             Darwin 10.8.0
>        Boot Mode       : Normal                    Normal
>        Secure Virtual Memory       : Not Enabled   Not Enabled
>        64-bit Kernel and Extensions: No            No
> 
> Presently, libgcc and gcc49 fail to upgrade :
> 
> #=> port outdated
> The following installed ports are outdated:
> gcc49                          4.9.2_1 < 4.9.2_2
> libgcc                         4.9.2_1 < 5.1.0_1
> 
> And the following ports completely fail to install:
> 
>    port install mariadb-10.0-server
>    port install mariadb-10.1-server
> 
> The relevant logs can be found on my server here :
> 
>    http://www.mathiesen.info/macports/




> macmini1,1-libgcc-main.log
> macmini1,1-mariadb-10.0-main.log
> macmini1,1-mariadb-10.1-main.log
> macmini2,1-libgcc-main.log
> macmini2,1-mariadb-10.0-main.log
> macmini2,1-mariadb-10.1-main.log

The mariadb build failures are easy: they're failing because strnlen is not defined. This is correct: strnlen was not part of OS X until 10.7. You should report this problem to the developers of mariadb. They need to either avoid using strnlen, or else provide an implementation of it when the OS does not.


The gcc build failures are unfamiliar to me:


:info:build In file included from /macports/var/macports/build/_macports_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc5/libgcc/work/gcc-5.1.0/gcc/genmatch.c:32:
:info:build /macports/var/macports/build/_macports_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc5/libgcc/work/gcc-5.1.0/gcc/hash-table.h:1047:43: error: out-of-line definition of 'traverse_noresize' does not match any declaration in 'hash_table<type-parameter-0-0, Allocator, 0>'
:info:build hash_table<Descriptor, Allocator, false>::traverse_noresize (Argument argument)
:info:build ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
:info:build /macports/var/macports/build/_macports_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc5/libgcc/work/gcc-5.1.0/gcc/hash-table.h:1073:43: error: out-of-line definition of 'traverse' does not match any declaration in 'hash_table<type-parameter-0-0, Allocator, 0>'
:info:build hash_table<Descriptor, Allocator, false>::traverse (Argument argument)
:info:build ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
:info:build /macports/var/macports/build/_macports_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc5/libgcc/work/gcc-5.1.0/gcc/hash-table.h:1623:42: error: out-of-line definition of 'traverse_noresize' does not match any declaration in 'hash_table<type-parameter-0-0, Allocator, 1>'
:info:build hash_table<Descriptor, Allocator, true>::traverse_noresize (Argument argument)
:info:build ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
:info:build /macports/var/macports/build/_macports_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc5/libgcc/work/gcc-5.1.0/gcc/hash-table.h:1649:42: error: out-of-line definition of 'traverse' does not match any declaration in 'hash_table<type-parameter-0-0, Allocator, 1>'
:info:build hash_table<Descriptor, Allocator, true>::traverse (Argument argument)
:info:build ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^


I don't know what these errors mean but I see MacPorts has decided to build with clang. The port blacklists llvm-gcc42, so I assume this means you are running Xcode 4. (Xcode 3.2.6 is recommended for MacPorts on Snow Leopard.) It's possible the old version of clang in Xcode 4 on Snow Leopard is insufficient to compile this code. You could try compiling with a newer MacPorts clang compiler:

sudo port clean libgcc
sudo port upgrade libgcc configure.compiler=macports-clang-3.4

If that works, we can adjust the port's blacklist to exclude the older clang.



More information about the macports-dev mailing list