1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Wie compiler flags von Ports sehen?

Dieses Thema im Forum "FreeBSD - Anwendungen und Ports" wurde erstellt von SolarCatcher, 15 Mai 2017.

  1. SolarCatcher

    SolarCatcher Active Member

    Registriert seit:
    24 August 2006
    Beiträge:
    677
    Die compiler flags für Ports werden ja über Anweisungen in /usr/ports/Mk und die jeweiligen Makefiles der Ports gesteuert. Aber gibt es eine einfache Möglichkeit herauszufinden, wie der komplette make-Befehl aussieht, mit dem ein Port gebaut werden soll?

    Hintergrund ist: Ich möchte manchmal eine neuere Version von www/h2o bauen, als was in Ports ist - und da würde ich als Ausgangskonfiguration die compiler flags verwenden, die auch der Port verwendet.
     
  2. KobRheTilla

    KobRheTilla used register

    Registriert seit:
    20 Januar 2011
    Beiträge:
    1.065
    In den meisten Fällen ist es ja nicht nur make, sondern ein vorheriges ./configure. Die Optionen, die das configure-Skript bekommt sind warscheinlich eher interessant für dich und diese findest du im Port-Makefile (CONFIGURE_ARGS + <OPTION>_CONFIGURE_WITH + <OPTION>_CONFIGURE_ENABLE)

    Rob
     
  3. SolarCatcher

    SolarCatcher Active Member

    Registriert seit:
    24 August 2006
    Beiträge:
    677
    Danke @KobRheTilla , aber hier bin ich wirklich vor allem an den Compiler Flags insteressiert:

    Calomel.org schlägt für www/h2o diesen CMAKE-Befehl vor:
    Code:
    cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_FLAGS="-Wall -ggdb3 -O2 -fstack-protector-all -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++0x -fvisibility=hidden" -DCMAKE_C_FLAGS="-Wall -ggdb3 -O2 -fstack-protector-all -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fvisibility=hidden" -DWITH_BUNDLED_SSL=on -DWITH_PICOTLS=on -DWITH_MRUBY=on .
    
    Mich interessieren insbesondere die sicherheitsrelevanten Flags: Ich würde gerne wissen, wie der Aufruf beim FreeBSD-Port aussieht. Und dann, wie es HardenedBSD macht. Kommt da z.B. noch ein "-fPIE" oder ähnliches hinzu, um die Wirksamkeit von ASLR zu verbessern?

    Kann man das irgendwie sehen/testen? Oder über einen pkg-Befehl aus den offiziellen Packages rausziehen?
     
  4. KobRheTilla

    KobRheTilla used register

    Registriert seit:
    20 Januar 2011
    Beiträge:
    1.065
    Wenn du den Port mittels make baust, müssten alle Kommandos auch angezeigt werden, inkl. der Parameter. Schau dir doch einfach die ersten Zeilen der Ausgabe an.

    Rob
     
  5. pit234a

    pit234a Well-Known Member

    Registriert seit:
    8 Juli 2006
    Beiträge:
    3.064
    eine andere Möglichkeit wäre vielleicht, die Angaben in den Ports zu faken und dann dies als ganz gewöhnlichen Port bauen zu lassen.
    Manchmal ist das so einfach, wie dies hier anzupassen:
    Code:
    /usr/ports/www/h2o:- > cat distinfo
    TIMESTAMP = 1484725591
    SHA256 (h2o-h2o-v2.1.0_GH0.tar.gz) = 41f3853f3083c2fe8e70d3ab7be02c3de3c26fb77ba5fc56fdaf46712418b999
    SIZE (h2o-h2o-v2.1.0_GH0.tar.gz) = 15207573
    Manchmal muss man etwas mehr erledigen, imMakefile vielleicht noch den Ort für das Download anpassen und in den pkh-plist kontrollieren, ob da auch die Angaben, bzw Versionen passen.
     
  6. SolarCatcher

    SolarCatcher Active Member

    Registriert seit:
    24 August 2006
    Beiträge:
    677
    @pit234a Ja, das hätte ich probieren können. Allerdings verfolge ich die Entwicklung von Upstream auf GitHub, wo auch der Portmaintainer immer wieder in Diskussionen zu finden ist. Wenn er keine neue Version rausbringt, liegt es vermutlich daran, dass es nicht so einfach ist, wie es scheint. Aber vor ein paar Tagen ist nun auch sein Patch für 2.2.2 in den Ports gelandet...