From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32570 invoked by alias); 23 May 2013 07:15:52 -0000 Mailing-List: contact libc-ports-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: libc-ports-owner@sourceware.org Received: (qmail 32559 invoked by uid 89); 23 May 2013 07:15:52 -0000 X-Spam-SWARE-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,SPF_PASS autolearn=ham version=3.3.1 Received: from mail-pa0-f46.google.com (HELO mail-pa0-f46.google.com) (209.85.220.46) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Thu, 23 May 2013 07:15:51 +0000 Received: by mail-pa0-f46.google.com with SMTP id fa10so2630176pad.5 for ; Thu, 23 May 2013 00:15:49 -0700 (PDT) X-Received: by 10.69.0.226 with SMTP id bb2mr11602763pbd.34.1369293349565; Thu, 23 May 2013 00:15:49 -0700 (PDT) MIME-Version: 1.0 Received: by 10.68.160.98 with HTTP; Thu, 23 May 2013 00:15:09 -0700 (PDT) From: =?UTF-8?B?0JjQs9C+0YDRjCDQn9Cw0YjQtdCy?= Date: Thu, 23 May 2013 07:15:00 -0000 Message-ID: Subject: ../nptl/sysdeps/x86_64/tls.h:71:3: error: unknown type name '__m128 To: libc-ports@sourceware.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-SW-Source: 2013-05/txt/msg00097.txt.bz2 Hi, all! First off, i'm going forward porting glibc on illumos kernel (aka OpenSolar= is). The port is based on glibc 2.16. I know, that __m128 was replaced by hand-made type in nptl/sysdeps/x86_64/tls.h [1], because rtld is compiled without sse. But I'd like to figure out how it worked previously, and whether there are other bugs in my port. Here is compiler message: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >8 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D gcc ../sysdeps/x86_64/multiarch/strstr.c -c -std=3Dgnu99 -fgnu89-inline -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -frounding-math -g -Wstrict- -msse4 -I../include -I/home/pashev/glibc/build/string -I/home/pashev/glibc/build -I../nptl/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86_64 -I../np unix/sysv/solaris2/kopensolaris-gnu/x86 -I../sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86 -I../sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86_64 -I../np unix/sysv/solaris2/kopensolaris-gnu -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../sysdeps/unix/sysv/solaris2/kopensolaris-gnu -I../sysdeps/gnu -I../sy inet -I../nptl/sysdeps/unix/sysv/solaris2 -I../sysdeps/unix/sysv/solaris2 -I../nptl/sysdeps/unix/sysv -I../sysdeps/unix/sysv -I../sysdeps/unix/x86_64 -I../n /unix -I../sysdeps/unix -I../sysdeps/posix -I../nptl/sysdeps/x86_64/64 -I../sysdeps/x86_64/64 -I../sysdeps/x86_64/fpu/multiarch -I../sysdeps/x86_64/fpu -I.. 6_64/multiarch -I../nptl/sysdeps/x86_64 -I../sysdeps/x86_64 -I../sysdeps/x86 -I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64/wordsize-64 -I../sysde dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/wordsize-64 -I../sysdeps/ieee754 -I../sysdeps/generic -I../nptl -I.. -I../libio -I. -D_LIBC_REENTRANT -inc lude/libc-symbols.h -o /home/pashev/glibc/build/string/strstr.o -MD -MP -MF /home/pashev/glibc/build/string/strstr.o.dt -MT /home/pashev/glibc/build/s r.o In file included from ../nptl/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/tls.h:31:0, from ../include/errno.h:22, from /usr/lib/gcc/x86_64-pc-solaris2.11/4.7/include/mm_malloc.h:28, from /usr/lib/gcc/x86_64-pc-solaris2.11/4.7/include/xmmintrin.h:39, from /usr/lib/gcc/x86_64-pc-solaris2.11/4.7/include/emmintrin.h:36, from /usr/lib/gcc/x86_64-pc-solaris2.11/4.7/include/pmmintrin.h:36, from /usr/lib/gcc/x86_64-pc-solaris2.11/4.7/include/tmmintrin.h:35, from /usr/lib/gcc/x86_64-pc-solaris2.11/4.7/include/smmintrin.h:36, from /usr/lib/gcc/x86_64-pc-solaris2.11/4.7/include/nmmintrin.h:34, from ../sysdeps/x86_64/multiarch/strstr.c:20: ../nptl/sysdeps/x86_64/tls.h:71:3: error: unknown type name '__m128' =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D 8< =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D The "nptl/sysdeps/x86_64/tls.h" includes "xmmintrin.h" for __m128 [2], but from the above output it is obvious, that is already included. But this file defines __m128 *after* including mm_malloc.h and thus errno.h and tls.h. So "xmmintrin.h" is not included in "nptl/sysdeps/x86_64/tls.h". Here is top of /usr/lib/gcc/x86_64-pc-solaris2.11/4.7/include/xmmintrin.h: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >8 =3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D #ifndef _XMMINTRIN_H_INCLUDED #define _XMMINTRIN_H_INCLUDED #ifndef __SSE__ # error "SSE instruction set not enabled" #else /* We need type definitions from the MMX header file. */ #include /* Get _mm_malloc () and _mm_free (). */ #include /* The Intel API is flexible enough that we must allow aliasing with other vector types, and their scalar components. */ typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__)); =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D 8< =3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D The "/usr/lib/gcc/x86_64-pc-solaris2.11/4.7/include/mm_malloc.h" file includes errno.h for one of inline functions. I've compared it with linux mm_malloc.h: the latter does not include errno.= h. So the problem is specific to OpenSolaris. What is the best way to fix it? Is it safe to backport [1] ? Should I fix GCC headers? Or maybe include/errno.h is not that errno.h file which should be included? [1] http://sourceware.org/git/?p=3Dglibc.git;a=3Dblobdiff;f=3Dnptl/sysdeps/= x86_64/tls.h;h=3Dbc60a511fbc0555f069888dc977ce39bd5326a46;hp=3Db651d1cfa884= 0cfa4f27aa197c82e8f01625b191;hb=3Df62c8abcfbf0d2e7f0a6c6c1dde53158e6fc4e59;= hpb=3Da68d0680f89b5f3639b30ec7955671d97e101e87 [2] http://sourceware.org/git/?p=3Dglibc.git;a=3Dblob;f=3Dnptl/sysdeps/x86_= 64/tls.h;h=3Db651d1cfa8840cfa4f27aa197c82e8f01625b191;hb=3Db651d1cfa8840cfa= 4f27aa197c82e8f01625b191