[Bug target/60157] New: adding -mstrict-align for i386 and x86_64 architecture
vinxxe at gmail dot com
gcc-bugzilla@gcc.gnu.org
Wed Feb 12 08:50:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60157
Bug ID: 60157
Summary: adding -mstrict-align for i386 and x86_64 architecture
Product: gcc
Version: 4.4.6
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: vinxxe at gmail dot com
Created attachment 32113
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32113&action=edit
source code to reproduce the problem
the pthread_cond_wait nptl function enters an infinite loop, never suspending
the calling thread, if the address of the condition variable is misaligned.
Now, this is not a gcc bug, obviously, but my question is:
does it make sense to add the target option
-mstrict-align
to the i386 and x86_64 architectures, so that these kind of problem can be
detected at compilation time?
attached you will find a source code example to reproduce the problem
execute the program with
strace -f <exec_name>
to see a neverending series of
[pid 2922] futex(0x80499fd, FUTEX_WAIT_PRIVATE, 1, NULL) = -1 EINVAL (Invalid
argument)
here follows some info of my linux machine
----------------------------------------------------------------
cat /proc/version
Linux version 2.6.32-220.7.1.el6.centos.plus.i686 (root@thalix11dev) (gcc
version 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC) ) #1 SMP Mon Oct 21 07:05:28
UTC 2013
rpm -qa | grep glibc
glibc-devel-2.12-1.47.i686
glibc-common-2.12-1.47.i686
glibc-2.12-1.47.i686
glibc-debuginfo-2.12-1.47.i686
glibc-headers-2.12-1.47.i686
glibc-utils-2.12-1.47.i686
glibc-debuginfo-common-2.12-1.47.i686
glibc-static-2.12-1.47.i686
cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 3
model name : Intel(R) Pentium(R) 4 CPU 2.80GHz
stepping : 4
cpu MHz : 2799.930
cache size : 1024 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat
pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe constant_tsc up pebs bts
pni dtes64 monitor ds_cpl cid xtpr
bogomips : 5586.31
clflush size : 64
cache_alignment : 128
address sizes : 36 bits physical, 32 bits virtual
power management:
rpm -qa | grep gcc
gcc-4.4.6-3.el6.i686
libgcc-4.4.6-3.el6.i686
gcc-c++-4.4.6-3.el6.i686
More information about the Gcc-bugs
mailing list