On Tue, Feb 26, 2019 at 10:27 AM Rex Dieter <rdieter(a)gmail.com> wrote:
Richard Shaw wrote:
> I'm troubleshooting why apiextractor tests segfault during package
> building. I have not been able to attribute it to any change in build
> flags so I started looking at qt4 which appears to still be FTBFS for F30
> rebuild.
>
> There's a check in the spec file which fails:
>
> + grep '^#define QT_BUILD_KEY ' src/corelib/global/qconfig.h
> #define QT_BUILD_KEY "x86_64 linux g++-9 full-config"
> BUILDSTDERR: ++ grep '^#define QT_BUILD_KEY '
src/corelib/global/qconfig.h
> BUILDSTDERR: ++ cut '-d ' -f5
> QT_BUILD_KEY_COMPILER failure
> + QT_BUILD_KEY_COMPILER=g++-9
> + '[' g++-9 '!=' g++-4 ']'
> + echo 'QT_BUILD_KEY_COMPILER failure'
> + exit 1
>
> It looks like after configuration that the "KEY" changed from g++4 to
> g++9.
>
> Is this check appropriate?
The check is legit'ish. In particular, afaik, the key should not have
changed, so that should be fixed in qt4
Found it... configure has been heavily patched to deal with newer gcc
versions but has not been updated to deal with gcc 9...
#-------------------------------------------------------------------------------
# generate QT_BUILD_KEY
#-------------------------------------------------------------------------------
# some compilers generate binary incompatible code between different
versions,
# so we need to generate a build key that is different between these
compilers
COMPAT_COMPILER=
case "$COMPILER" in
g++*)
# GNU C++
COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
case "$COMPILER_VERSION" in
*.*.*)
QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed
's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed
's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed
's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
;;
*.*)
QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed
's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed
's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
QT_GCC_PATCH_VERSION=0
;;
*)
QT_GCC_MAJOR_VERSION=$COMPILER_VERSION
QT_GCC_MINOR_VERSION=0
QT_GCC_PATCH_VERSION=0
;;
esac
case "$COMPILER_VERSION" in
2.95.*)
COMPILER_VERSION="2.95.*"
;;
3.*)
COMPILER_VERSION="3.*"
;;
5*|4.*) <<<--- HERE ---|||
COMPILER_VERSION="4"
;;
*)
;;
esac
[ '!' -z "$COMPILER_VERSION" ] &&
COMPILER="g++-${COMPILER_VERSION}"
;;
icc*)
I just updated the patch and performing a local mock build to see if that
was the only issue.
Thanks,
Richard