public inbox for gcc-prs@sourceware.org help / color / mirror / Atom feed
From: Vladimir Grebinskiy <vgrebinski@yahoo.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, Subject: Re: target/10395: sse2 datatype is not 16bytes aligned in threaded code Date: Mon, 14 Apr 2003 01:26:00 -0000 [thread overview] Message-ID: <20030414012601.26398.qmail@sources.redhat.com> (raw) The following reply was made to PR target/10395; it has been noted by GNATS. From: Vladimir Grebinskiy <vgrebinski@yahoo.com> To: tprince@computer.org, gcc-gnats@gcc.gnu.org Cc: vgrebinski@yahoo.com Subject: Re: target/10395: sse2 datatype is not 16bytes aligned in threaded code Date: Sun, 13 Apr 2003 18:24:27 -0700 (PDT) --- Tim Prince <timothyprince@sbcglobal.net> wrote: > On Sunday 13 April 2003 15:44, vgrebinski@yahoo.com wrote: > > >Number: 10395 > > >Category: target > > >Synopsis: sse2 types are incorrectly aligned causing crash in > > > multi-threaded apps Confidential: no > > >Severity: serious > > >Priority: medium > > >Responsible: unassigned > > >State: open > > >Class: wrong-code > > >Submitter-Id: net > > >Arrival-Date: Sun Apr 13 22:46:00 UTC 2003 > > >Closed-Date: > > >Last-Modified: > > >Originator: Vladimir Grebinskiy > > >Release: 3.3 20030410 (prerelease) > > >Organization: > > >Environment: > > > > System: Linux vag 2.4.21-pre5 #2 Sun Mar 2 00:28:31 EST 2003 i686 unknown > > unknown GNU/Linux Architecture: i686 > > > > > > host: i386-pc-linux-gnu > > build: i386-pc-linux-gnu > > target: i386-pc-linux-gnu > > configured with: > > /build/packages/gcc/snap/gcc-snapshot-20030410/src/configure -v > > --enable-languages=c,c++,java,f77,pascal,objc,ada > > --prefix=/usr/lib/gcc-snapshot --infodir=/share/info --mandir=/share/man > > --enable-shared --with-system-zlib --enable-nls --without-included-gettext > > --enable-__cxa_atexit --enable-clocale=gnu --enable-java-gc=boehm > > --enable-java-awt=xlib --with-cpp-install-dir=bin --enable-multilibs > > --enable-objc-gc i386-linux > > > > >Description: > > > > support for sse2 instruction is an important addtion to gcc-3.3. > > Unfortunately, code generated for functions called via pthread_create() > > does not provide 16bytes alignment for local sse2 data, which causes crash > > when these variables are used. > > > > >How-To-Repeat: > > > > The following short program demonstrates problem. The second call to > > function "f" shows that variable is not aligned to 16 bytes: > > > > /* *** start ***/ > > #include <pthread.h> > > #include <stdio.h> > > #include <assert.h> > > > > #include <xmmintrin.h> > > #include <mmintrin.h> > > > > #ifdef __ICC > > #include <emmintrin.h> > > #endif > > > > void * f(void *p) > > { > > int x = (p == NULL) ? 0 : * (int *) p; > > __m128i s; > > printf("&x = %p &s= %p\n", &x, &s); > > return NULL; > > } > > > > int main(int argc, char ** argv) > > { > > pthread_t th; > > > > f(& argc); > > assert(pthread_create(& th, NULL, f, &argc)==0); > > assert(pthread_join(th, NULL)==0); > > return 0; > > } > > > > /* ***end *** / > > > > $ /usr/lib/gcc-snapshot/bin/gcc -pthread -msse2 gcc_test.c -o > > gcc_test.LINUX $ ./gcc_test.LINUX > > &x = 0xbffffb6c &s= 0xbffffb50 > > &x = 0xbf7ffae8 &s= 0xbf7ffacc <---- error > > > > >Fix: > > > > > Similar problem here, but I had to change --m128i to --m128. Did you try > rebuilding libpthread with the proper options passed to gcc? Otherwise, it > looks like an error in the library build. gcc won't work unless libpthread > passes aligned stack to your function. I tried another compiler, which > doesn't expect aligned stack, and it was OK. Thanks for suggestion. I'll try to find out if libpthread should be compiled in a special way (I guess whole libc should be recompiled). Currently, all libraries are whatever is in Debian/unstable as of today. The code works as expected with Intel's compiler (build 7.1.011), I guess it uses the same libpthread as gcc does. I just checked that there is a similar problem with MMX datatypes (in which case unaligned access is just slower?) -- data are not 8 bytes aligned when called inside a thread (checked also with 3.2.3 20030407 (Debian prerelease)). Vladimir > -- > Tim Prince __________________________________________________ Do you Yahoo!? Yahoo! Tax Center - File online, calculators, forms, and more http://tax.yahoo.com
next reply other threads:[~2003-04-14 1:26 UTC|newest] Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top 2003-04-14 1:26 Vladimir Grebinskiy [this message] -- strict thread matches above, loose matches on Subject: below -- 2003-04-13 23:36 Tim Prince 2003-04-13 22:46 vgrebinski
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20030414012601.26398.qmail@sources.redhat.com \ --to=vgrebinski@yahoo.com \ --cc=gcc-prs@gcc.gnu.org \ --cc=nobody@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).