This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libgomp/56357] New: [4.8 Regression] missing symbol references for libgomp when using -flto -fopenmp on mingw32


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56357

             Bug #: 56357
           Summary: [4.8 Regression] missing symbol references for libgomp
                    when using -flto -fopenmp on mingw32
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libgomp
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: daniel.f.starke@freenet.de
                CC: jakub@gcc.gnu.org


The combination of -flto and -fopenmp is broken for mingw32 in r196092.

#define ARRAY_SIZE 10

int main() {
    int i;
    volatile int a[ARRAY_SIZE];
    #pragma omp parallel for private(a)
    for (i = 0; i < ARRAY_SIZE; i++) {
        a[i] += i;
    }

    return 0;
}

This code works fine with "gcc -fopenmp gcc-lto-gomp.c" but results in errors
for "gcc -fopenmp -flto gcc-lto-gomp.c". Adding -lgomp does not solves this.

Error output:
C:\Users\Me\AppData\Local\Temp\cccobKR8.ltrans0.ltrans.o:cccobKR8.ltrans0.o:(.text+0x6):
undefined reference to `omp_get_num_threads'
C:\Users\Me\AppData\Local\Temp\cccobKR8.ltrans0.ltrans.o:cccobKR8.ltrans0.o:(.text+0xd):
undefined reference to `omp_get_thread_num'
C:\Users\Me\AppData\Local\Temp\cccobKR8.ltrans0.ltrans.o:cccobKR8.ltrans0.o:(.text.startup+0x26):
undefined reference to `GOMP_parallel_start'
C:\Users\Me\AppData\Local\Temp\cccobKR8.ltrans0.ltrans.o:cccobKR8.ltrans0.o:(.text.startup+0x37):
undefined reference to `GOMP_parallel_end'
could not unlink output filecollect2.exe: error: ld returned 1 exit status

This all works fine in gcc 4.7.2 with the same build configuration.

Using built-in specs.
COLLECT_GCC=D:\Programme\msys\gcc\bin\gcc.exe
COLLECT_LTO_WRAPPER=d:/programme/msys/gcc/bin/../libexec/gcc/mingw32/4.8.0/lto-wrapper.exe
Target: mingw32
Configured with: ../gcc-4.8.0-r196092/configure
--enable-languages=c,ada,c++,fortran,objc,obj-c++ --disable-sjlj-exceptions
--disable-nls --disable-shared --enable-static --enable-fully-dynamic-string
--enable-libgomp --enable-lto --with-dwarf2 --disable-win32-registry
--enable-version-specific-runtime-libs --enable-bootstrap --build=mingw32
--enable-abi=32 --enable-checking=release --prefix=/mingw
Thread model: win32
gcc version 4.8.0 20130215 (experimental) (GCC)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]