Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.1.0 Beta 1
-
None
-
Ubuntu 12.04 (64-bit)
-
qtbase/release: 2d9cd8eef8652873e73d5cde6b6545eea9a17612
Description
The xkbcommon.pri doesn't appear to respect any mkspec-specified build argument.
Steps to reproduce:
1. configure Qt 5.1.0 beta with:
./configure -debug -prefix $PWD/qtbase -platform linux-g++-32 -nomake examples -nomake docs -qt-xkbcommon
2. run:
make
Expected result:
The build succeeds
Actual result:
The build fails with:
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/atom.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/xkb-compat.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/context.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/xkb-keymap.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/keysym.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/keysym-utf.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/state.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/text.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/action.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/ast-build.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/compat.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/expr.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/include.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/keycodes.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/keymap-dump.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/keymap.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/parser.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/rules.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/scanner.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/symbols.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/types.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/vmod.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `.obj/release-shared/xkbcomp.o' is incompatible with i386 output
In qtbase/src/3rdparty/xkbcommon.pri
there is this line:
QMAKE_CFLAGS = -std=gnu99 -w
If one adds -m32 the build runs fine and 32-bit object files are created. Without adding -m32 it produced 64bot .o files and then later errored out when linking was attempted due to the conflicting architectures.