From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9014 invoked by alias); 12 Feb 2014 08:50:30 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 8957 invoked by uid 48); 12 Feb 2014 08:50:26 -0000 From: "vinxxe at gmail dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/60157] New: adding -mstrict-align for i386 and x86_64 architecture Date: Wed, 12 Feb 2014 08:50:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 4.4.6 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: vinxxe at gmail dot com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter attachments.created Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2014-02/txt/msg01118.txt.bz2 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 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