On Fri, Dec 21, 2012 at 11:07 AM, Jakub Jelinek <ja...@redhat.com> wrote:

> Do you happen to use spaces or similar problematic characters in the build
> directory path?
> Can you paste some command line from libgomp.log?

Something is definitely broken. When I run the fortran tests by
themselves, it is okay, but in conjunction with the C and C++ tests, I
see numerous failures.

Executing on host: /tmp/20121223/gcc/xgcc -B/tmp/20121223/gcc/
/nasfarm/dje/src/src/libgomp/testsuite/libgomp.fortran/allocatable2.f90
 -B/tmp/20121223/powerpc-ibm-aix7.1.0.0/./libgomp/
-B/tmp/20121223/powerpc-ibm-aix7.1.0.0/./libgomp/.libs
-I/tmp/20121223/powerpc-ibm-aix7.1.0.0/./libgomp
-I/nasfarm/dje/src/src/libgomp/testsuite/.. -fmessage-length=0
-fno-diagnostics-show-caret -fopenmp -fintrinsic-modules-path
/tmp/20121223/powerpc-ibm-aix7.1.0.0/./libgomp  -O0
-B/tmp/20121223/powerpc-ibm-aix7.1.0.0/./libgomp/../libgfortran/.libs
 -L/tmp/20121223/powerpc-ibm-aix7.1.0.0/./libgomp/.libs
-L/tmp/20121223/powerpc-ibm-aix7.1.0.0/./libgomp/../libgfortran/.libs
-lgfortran -lm   -o ./allocatable2.exe    (timeout = 300)
xgcc: fatal error: cannot specify -o with -c, -S or -E with multiple
files compilation terminated.

It only occurs during the collect2 re-invocation of gcc:

COLLECT_GCC_OPTIONS='-B' '/tmp/20121223/gcc/' '-B'
'/tmp/20121223/powerpc-ibm-aix7.1.0.0/./libgomp/' '-B'
'/tmp/20121223/powerpc-ibm-aix7.1.0.0/./libgomp/.libs' '-I'
'/tmp/20121223/powerpc-ibm-aix7.1.0.0/./libgomp' '-I'
'/nasfarm/dje/src/src/libgomp/testsuite/..' '-fmessage-length=0'
'-fno-diagnostics-show-caret' '-fopenmp' '-fintrinsic-modules-path'
'/tmp/20121223/powerpc-ibm-aix7.1.0.0/./libgomp' '-O0' '-B'
'/tmp/20121223/powerpc-ibm-aix7.1.0.0/./libgomp/../libgfortran/.libs'
'-L/tmp/20121223/powerpc-ibm-aix7.1.0.0/./libgomp/.libs'
'-L/tmp/20121223/powerpc-ibm-aix7.1.0.0/./libgomp/../libgfortran/.libs'
'-o' './allocatable2.exe' '-v' '-pthread'
 /tmp/20121223/gcc/collect2 -bpT:0x10000000 -bpD:0x20000000 -btextro
-bnodelcsect -o ./allocatable2.exe /lib/crt0_r.o
-L/tmp/20121223/powerpc-ibm-aix7.1.0.0/./libgomp/.libs
-L/tmp/20121223/powerpc-ibm-aix7.1.0.0/./libgomp/../libgfortran/.libs
-L/tmp/20121223/gcc/pthread -L/tmp/20121223/gcc
-L/tmp/20121223/powerpc-ibm-aix7.1.0.0/./libgomp
-L/tmp/20121223/powerpc-ibm-aix7.1.0.0/./libgomp/.libs
-L/tmp/20121223/powerpc-ibm-aix7.1.0.0/./libgomp/../libgfortran/.libs
/tmp//ccQjMedd.o -lgfortran -lm -lgomp
/tmp/20121223/gcc/pthread/libgcc.a
/tmp/20121223/gcc/pthread/libgcc_eh.a -lpthreads -lc
/tmp/20121223/gcc/pthread/libgcc.a
/tmp/20121223/gcc/pthread/libgcc_eh.a
xgcc: fatal error: cannot specify -o with -c, -S or -E with multiple files
compilation terminated.
collect2: error: gcc returned 1 exit status

collect2 creates the following invocation:

/tmp/20121223/gcc/xgcc -x c -c -o /tmp//ccM9DP7m.o -B
/tmp/20121223/gcc/ -B /tmp/20121223/powerpc-ibm-aix7.1.0.0/./libgomp/
-B /tmp/20121223/powerpc-ibm-aix7.1.0.0/./libgomp/.libs
-fmessage-length=0 -fno-diagnostics-show-caret -fopenmp
-fintrinsic-modules-path -B
/tmp/20121223/powerpc-ibm-aix7.1.0.0/./libgomp/../libgfortran/.libs
-fno-profile-arcs -fno-test-coverage -fno-branch-probabilities
-fno-exceptions -w -fno-whole-program /tmp//cc0QfAug.c
xgcc: fatal error: cannot specify -o with -c, -S or -E with multiple files
compilation terminated.
collect2: error: gcc returned 1 exit status

I believe the problem is due to collect2 not expecting a "-f" option
with a parameter separated by a space. -fintrinsic-modules-path should
accept an argument with with "=" to be consistent with other GCC -f
options. The current behavior is inconsistent with the rest of the GCC
user interface. And collect2 is losing the argument.  So "-B" is
consumed as the argument and the space-separated path argument to -B
is interpreted as a separate file, which is not allowed with -c -o.

Either -fintrinsic-modules-path needs to be modified to use "=" for
its argument or collect2 needs to ignore that option completely
because it is not relevant when compiling ctors.

Thanks, David

Reply via email to