GO auf OS X 10.6.8

  • Habs geschafft.


  • Ist das eine älter Brew Installation, wo schon einige Software (inkl. GCC) vor einiger Zeit installiert wurden?
    Also GCC 4.9 eigentlich als "brew install gcc" vor längerzeit (auch indirekt) installiert wurde?


    Ich möchte nicht zu sehr an den bestehenden System herumbasteln, also fangen wir besser sauber an:

    Code
    1. brew install homebrew/versions/gcc5


    Damit sollte ein gcc-5 [oder gcc-5.2] wie auch ein g++-5 und ein g++-5.2 am System installiert sein.


    Dann machen wir einen Funktionstest:


    hello.c:

    Code
    1. #include <stdio.h>
    2. int main()
    3. {
    4. printf("Hallo Welt\n");
    5. return 0;
    6. }


    hello1.cpp:

    Code
    1. #include <iostream>
    2. int main()
    3. {
    4. std::cout << "Hello Welt\n";
    5. return 0;
    6. }


    Dann wandeln wir um:

    Code
    1. gcc-5 -o hello hello.c -g
    2. g++-5 -o hello1 hello1.cpp -g


    und starten hello als auch hello1. Das muss gut gehen, wenn der Compiler OK ist.


    Wenn das geklappt hat:

    Code
    1. brew install wxmac --cc=gcc-5
  • Dann testen wir wx:


    Informationen:

    Code
    1. wx-config --list
    2. wx-config --selected-config --cxxflags --linkdeps --libs --optional-libs


    Als einfaches Testprogramm kann man apptest.cpp von http://trac.wxwidgets.org/ticket/17082 herunterladen und übersetzen:

    Code
    1. g++ -o touchtest touchtest.cpp $(wx-config --libs --cxxflags)


    Danach sollte es laufen und man mit der linken Maustaste eine Linie im Fenster zeichnen können.

  • Ich würde den Arbeitsverzeichnis des Builds (/private/tmp/wxmac20150826-56491-1nc8rcr/wxWidgets-3.0.2) die Datei config.log brauchen [Als zip sollte man sie hier hochladen können].


    Läuft wahrscheinlich auf eine falsche Pfadangabe von brew hinaus.

  • Das ist eine temporäres Verzeichnis.


    Lt. Manual startet brew bei einen fehlerhaften install, wenn man die Option --debug nutzt, eine Shell. Während diese noch läuft, sollte man das temporäre Verzeichnis (unter /private/tmp) finden:


    brew install wxmac --cc=gcc-5 --debug

  • Der output von g++-5:


  • Ich glaube, das Problem entwickelt sich Richtung einen Bug, der bei brew gemeldet werden sollte.


    Du hast folgenden Suchpfad:
    PATH: /usr/local/Library/ENV/4.3
    PATH: /usr/local/opt/jpeg/bin
    PATH: /usr/local/opt/libpng/bin
    PATH: /usr/local/opt/libtiff/bin
    PATH: /usr/bin
    PATH: /bin
    PATH: /usr/sbin
    PATH: /sbin
    PATH: /usr/local/opt/gcc/bin


    Das wird der Reihe nach nach einer Datei gcc-5 abgesucht, die dann auch gestartet wird.


    Es wird eine Datei names conftest.c mit folgenden Inhalt angelegt:


    Das wird dann mittels

    Code
    1. gcc-5 conftest.c


    umgewandelt. Das schlägt fehl mit:

    Code
    1. {standard input}:40:FATAL:Bad fx_size (0x8) in fix_to_relocation_info()


    Ich tippe darauf, das Brew in /usr/local/Library/ENV/4.3 ein Skript mit den Namen gcc-5 ablegt.


    Was ich so gesehen, wäre die erste Aktion vor einen Bugreport ein Upgrade von brew:

    Code
    1. brew update
    2. brew doctor
    3. brew upgrade


    Dann ein Bugreport inkl. config.log

  • Alternativ könnten wir auch LLVM versuchen.


    Brew hat ein llvm Package, der ein aktuelles clang installert:

    Code
    1. brew install llvm --with-clang


    Dann sollte ein clang/clang++ Kommando vorhanden sein [eventuell auch mit Versionnummer im Namen].


    Wenn du wxmac damit umwandelst (wahrscheinlich --cc=clang) und bei GO dann clang/clang++ statt gcc-5/g++-5 verwendest, solltest du hoffentlich zu einen GO Binary kommen.

  • brew doctor sagt:



    curl hab ich gemacht

  • Das GCC Problem ist wahrscheinlich:
    https://gcc.gnu.org/bugzilla/s…?format=multiple&id=60821


    Das Problem liegt in brew (bzw. dessen Nicht-Wissen, das der normale GCC nur für 32 oder 64 Bit aber nicht beides gleichzeitig bauen kann) und gehört von dessen Maintainern behandelt:
    https://github.com/Homebrew/ho…ooting.md#troubleshooting


    Als Workaround würde ich folgende Änderung an brew versuchen (Homebrew/os/mac/hardware.rb):
    [arch_32_bit, arch_64_bit].extend ArchitectureListExtension
    =>
    [arch_64_bit, arch_32_bit].extend ArchitectureListExtension
    Das sollte der lt. Bugreport der GCC schlucken.


    Alternativ bleibt noch der Weg über ein aktuelles clang.

  • Hab' die hardware.rb wie beschrieben verändert, jetzt:



    EDIT: verdammt, hätte ja gcc-5 gebraucht :-idiot:

  • Zur Sicherheit würde ich noch libtiff mit den selben cc Parameter (re-)installieren:

    Code
    1. brew install libtiff --cc=gcc-5


    Jetzt würde ich den WxWidgets build testen (siehe etwas früher). Wenn der funktioniert, kann man GO mit gcc-5/g++-5 umwandeln.