Ticket #44917

Qt: -fPIC & -fPIE conflict

Eröffnet am: 2022-06-23 21:33 Letztes Update: 2022-07-07 17:41

Auswertung:
Verantwortlicher:
Typ:
Status:
Geschlossen
Komponente:
Meilenstein:
Priorität:
5 - Mittel
Schweregrad:
5 - Mittel
Lösung:
Gefixt
Datei:
2

Details

I looked at the debian freeciv package build failure at x32: https://buildd.debian.org/status/logs.php?pkg=freeciv&ver=2.6.6-1

The problem seems to be that Qt headers there both require pic, and disallow pie. Freeciv m4/qt5.m4 correctly detects the need to add -fPIC. I think -fPIE comes from debian build hardening.

I got the build go through all right by adding logic to qt5.m4 to try to disable pie in cases where it adds pic (but in such a way that there should be no regression for any builds that require pic, but cannot disable pie for some reason)

I'll attach the patch I used in that testing (for S2_6, but likely applies to S3_0 as is - likely not to later branches with qt6 support)

Ticket-Verlauf (3/9 Historien)

2022-06-23 21:33 Aktualisiert von: cazfi
  • New Ticket "Qt: -fPIC & -fPIE conflict" created
2022-06-24 08:01 Aktualisiert von: cazfi
  • Verantwortlicher Update from (Keine) to cazfi
  • Lösung Update from Keine to Accepted
  • Meilenstein Update from (Keine) to 3.0.3 (closed)
Kommentar

Reply To cazfi

I'll attach the patch I used in that testing (for S2_6, but likely applies to S3_0 as is - likely not to later branches with qt6 support)

Actually it applies to all branches just fine - for the Qt5 part. Which is just fine, as I rather wait to see someone to reproduce similar problem with Qt6 before applying such change to Qt6-mode builds.

The benefit of having this inside freeciv bootstrap, instead of user controlling whether PIE is set or not, is granularity. Inside qt5.m4 we apply the change to flags used only for building anything Qt-facing. User would have to disable it from the entire build.

Plan to push to all branches, including even S2_6 from which we don't expect releases any more.

2022-06-25 17:00 Aktualisiert von: cazfi
  • Lösung Update from Accepted to Keine
Kommentar

Clang doesn't like this:

clang: error: argument unused during compilation: '-no-pie' [-Werror,-Wunused-command-line-argument!]

2022-06-25 17:09 Aktualisiert von: cazfi
Kommentar

Reply To cazfi

Clang doesn't like this:
clang: error: argument unused during compilation: '-no-pie' [-Werror,-Wunused-command-line-argument!]

That configure check runs without "-Werror" even on --enable-debug, while the actual compilation has "-Werror"

2022-06-26 09:26 Aktualisiert von: cazfi
  • Lösung Update from Keine to Accepted
Kommentar

Attached patch that does the configure check with -Werror (but does not add it to resulting flags)

2022-07-03 22:11 Aktualisiert von: cazfi
  • Status Update from Offen to Geschlossen
  • Lösung Update from Accepted to Gefixt
2022-07-07 17:41 Aktualisiert von: cazfi
Kommentar

Apparently I had failed to cherry-pick the corrected patch to older branches - only master branch has the -Werror fix.

Once I have an opportunity, I will push the fix immediately. 1) This is causing a build failure for clang users. 2) The change was already reviewed as what was supposed to get pushed in

(Edited, 2022-07-07 17:42 Aktualisiert von: cazfi)

Bearbeiten

Please login to add comment to this ticket » Anmelden