[Development] Build issue with configure -developer-build for qtbase?

Thiago Macieira thiago.macieira at intel.com
Tue May 15 19:32:50 CEST 2012

On terça-feira, 15 de maio de 2012 12.03.30, Carl Schumann wrote:
> An update ...
> This build error was on our production 32 bit systems.   We are just
> know in the process of transitioning to 64 bit systems.  (We have a lot
> of legacy and limited downtime opportunities to make big changes.  We
> are also a little short on staff.)
> I extracted this build issue into a simple test file, main.cpp, which is
> attached.   I then tried to reproduce the build error on on both
> systems.  These results are also attached.   Bottom line the build issue
> is present only on 32 bit system.

That was implied. On a 64-bit system, long would be long enough to hold that 
number. The error does not make sense outside of 32-bit systems -- or Windows 
(on Windows, longs are 32-bit regardless of the environment).

> I am guessing you all have transitioned to 64 bits for your build
> system, etc.   What is your policy statement on 32 bit systems?   Try
> not break them?  They deserve to get broken? ???   For me I will
> probably just transition my work to 64 bits even if our legacy stays 32
> bits for a while longer.

We have not all transitioned. In fact, I'm almost sure that all the CI builds 
are done on 32-bit. Even if they aren't, there are a lot of people testing 32-
bit builds and they are known to work.

The simple fact is that I can't reproduce your error with my GCC 4.6, Intel CC 
12.1 or Clang 3.0. When I compile the following program:
	struct Foo { long long x; } val = { 0x0123456789abcdef };

I don't get any errors with -Wall -Wextra. Not even any warnings.

So your problem must be one of:

1) too old GCC, which we don't support anymore
2) too new GCC -- very unlikely, given the error message
3) some other compiler flags -- can't be, given your paste in the OP
4) patched Qt source code

I cannot find a combination of flags that produces just that error. The closest 
I get to it is to add "-pedantic -pedantic-errors" and not add -std=c++0x. I 
also get the same with "-Wlong-long -Werror". In both cases, GCC prints:

<stdin>:1:1: error: integer constant is too large for ‘long’ type [-Wlong-
<stdin>:1:14: error: ISO C++ 1998 does not support ‘long long’ [-Wlong-long]

But I cannot get your error alone. It's always matched by that second error 
saying that C++98 does not support long long, which you didn't get.

Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
     Intel Sweden AB - Registration Number: 556189-6027
     Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.qt-project.org/pipermail/development/attachments/20120515/4d847343/attachment.sig>

More information about the Development mailing list