Compiling gcc-3.4.6 with gcc-4.4.1
Andrew Haley
aph@redhat.com
Fri Oct 2 06:16:00 GMT 2009
bugzilla wrote:
> Hi,
>
> I'm having trouble compiling gcc-3.4.6 with gcc-4.4.1.
>
> It fails at:
> ---
> % ./configure --host=x86_64-pc-linux-gnu --target=x86_64-pc-linux-gnu
> --enable-languages=c,c++
> % make CC=x86_64-pc-linux-gnu-gcc-4.4.1
> [...]
> x86_64-pc-linux-gnu-gcc-4.4.1 -g -O2 -DIN_GCC -W -Wall -Wwrite-strings
> -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long
> -DHAVE_CONFIG_H -I. -I. -I. -I./. -I./../include \
> -DTARGET_MACHINE=\"x86_64-pc-linux-gnu\" \
> -c ./collect2.c -o collect2.o
> In file included from /usr/include/fcntl.h:217,
> from ./system.h:214,
> from ./collect2.c:30:
> In function 'open',
> inlined from 'collect_execute' at ./collect2.c:1537:
> /usr/include/bits/fcntl2.h:51: erreur: call to '__open_missing_mode'
> declared with attribute error: open with O_CREAT in second argument needs 3
> arguments
It's often hard to build old versions of gcc with new ones, because
old versions were often nonstandard. You'll have to look at the code.
In this case, the error is perfectly correct:
redir_handle = open (redir, O_WRONLY | O_TRUNC | O_CREAT);
mode specifies the permissions to use in case a new file is cre-
ated. This argument must be supplied when O_CREAT is specified
in flags; if O_CREAT is not specified, then mode is ignored.
So you'll have to add a mode, maybe 0666.
Andrew.
More information about the Gcc-help
mailing list