I have been able to compile and run the application correctly with -fopenmp
flag, but when I also add -static flag I can compile the application. However
while running it i get a segmentation fault error.
I have used gdb to see where the program crashes, and it seems to be somewhere
in openmp header files.
This GDB was configured as "i386-redhat-linux-gnu"...Using host libthread_db
library "/lib/tls/libthread_db.so.1".
(gdb) run
Starting program: /files4/berkin/kmeans/example
Program received signal SIGSEGV, Segmentation fault.
initialize_team () at ../../../gcc/libgomp/config/linux/sem.h:39
39 *sem = value;
Also the detailed compilation notes are
GNU assembler version 2.15.92.0.2 (i386-redhat-linux) using BFD version
2.15.92.0.2 20040927
/files4/berkin/gcc-4.2.1/bin/gcc -fopenmp -g -v -save-temps -static -O2 -c
example.c
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../gcc/configure --prefix=/files4/berkin/gcc-4.2.1
--enable-threads
Thread model: posix
gcc version 4.2.1
/files4/berkin/gcc-4.2.1/libexec/gcc/i686-pc-linux-gnu/4.2.1/cc1 -E -quiet -v
-D_REENTRANT example.c -mtune=generic -fopenmp -fworking-directory -O2
-fpch-preprocess -o example.i
ignoring nonexistent directory
"/files4/berkin/gcc-4.2.1/lib/gcc/i686-pc-linux-gnu/4.2.1/../../../../i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/files4/berkin/gcc-4.2.1/include
/files4/berkin/gcc-4.2.1/lib/gcc/i686-pc-linux-gnu/4.2.1/include
/usr/include
End of search list.
/files4/berkin/gcc-4.2.1/libexec/gcc/i686-pc-linux-gnu/4.2.1/cc1
-fpreprocessed example.i -quiet -dumpbase example.c -mtune=generic -auxbase
example -g -O2 -version -fopenmp -o example.s
GNU C version 4.2.1 (i686-pc-linux-gnu)
compiled by GNU C version 4.2.1.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 80e6f10ad3e2beca945f13dba64821c7
as -V -Qy -o example.o example.s
GNU assembler version 2.15.92.0.2 (i386-redhat-linux) using BFD version
2.15.92.0.2 20040927
/files4/berkin/gcc-4.2.1/bin/gcc -fopenmp -g -v -save-temps -static -O2 -o
example fuzzy_kmeans.o cluster.o kmeans_clustering.o example.o -lm
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../gcc/configure --prefix=/files4/berkin/gcc-4.2.1
--enable-threads
Thread model: posix
gcc version 4.2.1
Reading specs from
/files4/berkin/gcc-4.2.1/lib/gcc/i686-pc-linux-gnu/4.2.1/../../../libgomp.spec
/files4/berkin/gcc-4.2.1/libexec/gcc/i686-pc-linux-gnu/4.2.1/collect2 -m
elf_i386 -static -o example /usr/lib/crt1.o /usr/lib/crti.o
/files4/berkin/gcc-4.2.1/lib/gcc/i686-pc-linux-gnu/4.2.1/crtbeginT.o
-L/files4/berkin/gcc-4.2.1/lib/gcc/i686-pc-linux-gnu/4.2.1
-L/files4/berkin/gcc-4.2.1/lib/gcc/i686-pc-linux-gnu/4.2.1/../../..
fuzzy_kmeans.o cluster.o kmeans_clustering.o example.o -lm -lgomp -lrt
--start-group -lgcc -lgcc_eh -lpthread -lc --end-group
/files4/berkin/gcc-4.2.1/lib/gcc/i686-pc-linux-gnu/4.2.1/crtend.o
/usr/lib/crtn.o
--
Summary: Segmentation fault when running an application compiled
with -fopenmp and -static flags
Product: gcc
Version: 4.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: boz283 at ece dot northwestern dot edu
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32896