FS#19163 - [gcc] 4.5 cannot compile Qt

Attached to Project: Arch Linux
Opened by ogaby (ogaby) - Sunday, 18 April 2010, 20:03 GMT
Last edited by Allan McRae (Allan) - Saturday, 24 April 2010, 15:11 GMT
Task Type Bug Report
Category Packages: Testing
Status Closed
Assigned To Pierre Schmitz (Pierre)
Andreas Radke (AndyRTR)
Andrea Scarpino (BaSh)
Architecture i686
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
gcc 4.5 can not compile Qt. It comes a compiler error:
ODBC support cannot be enabled due to functionality tests

Additional info:
testing/gcc
testing/gcc-libs

In /etc/makepkg.conf
CFLAGS="-march=i686 -mtune=generic -O2 -pipe"
CXXFLAGS="${CFLAGS}"

Steps to reproduce:
- copy files from /var/abs/extra/qt in a another directory.
- launch makepkg in this directory.
-> Error message:

Creating qmake. Please wait...
ODBC support cannot be enabled due to functionality tests!
Turn on verbose messaging (-v) to ./configure to see the final report.
If you believe this message is in error you may use the continue
switch (-continue) to ./configure to continue.
This task depends upon

Closed by  Allan McRae (Allan)
Saturday, 24 April 2010, 15:11 GMT
Reason for closing:  Fixed
Comment by Allan McRae (Allan) - Sunday, 18 April 2010, 21:10 GMT
Can you turn on the verbosity so we can see the actual error?
Comment by ogaby (ogaby) - Sunday, 18 April 2010, 22:05 GMT
In verbose mode

Creating qmake. Please wait...
floatmath auto-detection... ()
compiling floatmath.cpp
floatmath.cpp:44:5: attention : unused parameter ‘argc’
floatmath.cpp:44:5: attention : unused parameter ‘argv’
linking floatmath
floatmath enabled.
mmx auto-detection... ()
compiling mmx.cpp
linking mmx
mmx enabled.
3dnow auto-detection... ()
compiling 3dnow.cpp
linking 3dnow
3dnow enabled.
sse auto-detection... ()
compiling sse.cpp
linking sse
sse enabled.
sse2 auto-detection... ()
compiling sse2.cpp
linking sse2
sse2 enabled.
DB2 auto-detection... ()
compiling db2.cpp
db2.cpp:42:20: erreur fatale: sqlcli.h : Aucun fichier ou dossier de ce type
compilation terminée.
make: *** [db2.o] Erreur 1
DB2 disabled.
InterBase auto-detection... ()
compiling ibase.cpp
ibase.cpp:42:19: erreur fatale: ibase.h : Aucun fichier ou dossier de ce type
compilation terminée.
make: *** [ibase.o] Erreur 1
InterBase disabled.
MySQL (thread-safe) auto-detection... ()
compiling ../mysql/mysql.cpp
linking mysql_r
MySQL (thread-safe) enabled.
OCI auto-detection... ()
compiling oci.cpp
oci.cpp:42:17: erreur fatale: oci.h : Aucun fichier ou dossier de ce type
compilation terminée.
make: *** [oci.o] Erreur 1
OCI disabled.
ODBC auto-detection... ()
compiling odbc.cpp
In file included from /usr/include/sql.h:19:0,
from odbc.cpp:42:
/usr/include/sqltypes.h:400:19: erreur: ‘SQLBIGINT’ does not name a type
/usr/include/sqltypes.h:403:20: erreur: ‘SQLUBIGINT’ does not name a type
make: *** [odbc.o] Erreur 1
ODBC disabled.
iODBC auto-detection... ()
compiling iodbc.cpp
In file included from /usr/include/sql.h:19:0,
from iodbc.cpp:42:
/usr/include/sqltypes.h:400:19: erreur: ‘SQLBIGINT’ does not name a type
/usr/include/sqltypes.h:403:20: erreur: ‘SQLUBIGINT’ does not name a type
make: *** [iodbc.o] Erreur 1
iODBC disabled.
ODBC support cannot be enabled due to functionality tests!
Turn on verbose messaging (-v) to ./configure to see the final report.
If you believe this message is in error you may use the continue
switch (-continue) to ./configure to continue.
make: *** Pas de cibles spécifiées et aucun makefile n'a été trouvé. Arrêt.

therefore 3 fatal errors:
Headers sqlcli.h, ibase.h and oci.h are not found
Error in /usr/include/sqltypes.h with SQLBIGINT and SQLUBIGINT

PS: of course, if I install gcc 4.4, there is any problem.
Comment by Allan McRae (Allan) - Sunday, 18 April 2010, 22:11 GMT
Assigning to Qt guys. As far as I can tell, this is an issue with gcc-4.5 being stricter that gcc-4.4. So it is a Qt bug.

Reassign me if it is a genuine compiler issue.
Comment by Pierre Schmitz (Pierre) - Tuesday, 20 April 2010, 08:40 GMT
Next time please prefix with LANG=C; not eveyone is able to read freanch :-)

Here is the eror in English:

In file included from /usr/include/sql.h:19:0,
from odbc.cpp:42:
/usr/include/sqltypes.h:400:19: error: 'SQLBIGINT' does not name a type
/usr/include/sqltypes.h:403:20: error: 'SQLUBIGINT' does not name a type
make: *** [odbc.o] Error 1
ODBC disabled.
iODBC auto-detection... ()
compiling iodbc.cpp
In file included from /usr/include/sql.h:19:0,
from iodbc.cpp:42:
/usr/include/sqltypes.h:400:19: error: 'SQLBIGINT' does not name a type
/usr/include/sqltypes.h:403:20: error: 'SQLUBIGINT' does not name a type
make: *** [iodbc.o] Error 1

/usr/include/sql.h and /usr/include/sqltypes.h are both part of the unixodbc package. So my guess is that this is a unixodbc error and not caused by Qt. This error occurs during configure of mysql while compiling a simple odbc program. The failing code looks like this: (both headers are part of unixodbc)

#include <sql.h>
#include <sqlext.h>

int main(int, char **)
{
return 0;
}
Comment by Pierre Schmitz (Pierre) - Tuesday, 20 April 2010, 08:42 GMT
adding the unixodbc maintainer.
Comment by Pierre Schmitz (Pierre) - Tuesday, 20 April 2010, 09:20 GMT
If unixodbc cannot be fixed (has to be removed from the rpeo) we can switch to libiodbc. In that case "-I /usr/include/libiodbc" needs to be appended to configure.
Comment by Andreas Radke (AndyRTR) - Saturday, 24 April 2010, 09:21 GMT
Can this be closed? UnixODBC has been updated to testing repo and qt recompiled. I hope everything else depending on unixodbc is working well too.
Comment by ogaby (ogaby) - Saturday, 24 April 2010, 14:59 GMT
I have tested and it's working.

It can be closed and thanks everybody. :-)

Loading...