This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Thu, Jul 28, 2011 at 3:24 PM, H.J. Lu <hjl.tools@gmail.com> wrote: >>>> In x32, thread pointer is 32bit and choice of segment register for the >>>> thread base ptr load should be based on TARGET_64BIT. ?This patch >>>> implements it. ?OK for trunk? >>> >>> -ENOTESTCASE. >>> >> >> There is no standalone testcase. ?The symptom is in glibc build, I >> got >> >> CPP='/export/build/gnu/gcc-x32/release/usr/gcc-4.7.0-x32/bin/gcc -mx32 >> ?-E -x c-header' >> /export/build/gnu/glibc-x32/build-x86_64-linux/elf/ld-linux-x32.so.2 >> --library-path /export/build/gnu/glibc-x32/build-x86_64-linux:/export/build/gnu/glibc-x32/build-x86_64-linux/math:/export/build/gnu/glibc-x32/build-x86_64-linux/elf:/export/build/gnu/glibc-x32/build-x86_64-linux/dlfcn:/export/build/gnu/glibc-x32/build-x86_64-linux/nss:/export/build/gnu/glibc-x32/build-x86_64-linux/nis:/export/build/gnu/glibc-x32/build-x86_64-linux/rt:/export/build/gnu/glibc-x32/build-x86_64-linux/resolv:/export/build/gnu/glibc-x32/build-x86_64-linux/crypt:/export/build/gnu/glibc-x32/build-x86_64-linux/nptl >> /export/build/gnu/glibc-x32/build-x86_64-linux/sunrpc/rpcgen -Y >> ../scripts -h rpcsvc/yppasswd.x -o >> /export/build/gnu/glibc-x32/build-x86_64-linux/sunrpc/rpcsvc/yppasswd.T >> make[5]: *** [/export/build/gnu/glibc-x32/build-x86_64-linux/sunrpc/xbootparam_prot.stmp] >> Segmentation fault >> make[5]: *** Waiting for unfinished jobs.... >> make[5]: *** [/export/build/gnu/glibc-x32/build-x86_64-linux/sunrpc/xrstat.stmp] >> Segmentation fault >> make[5]: *** [/export/build/gnu/glibc-x32/build-x86_64-linux/sunrpc/xyppasswd.stmp] >> Segmentation fault >> >> since thread pointer is 32bit in x32. >> > > If we load thread pointer (fs segment register) in x32 with 64bit > load, the upper 32bits are garbage. > We must load 32bit So, instead of huge complications with new mode iterator, just introduce two new patterns that will shadow existing ones for TARGET_X32. Like in attached (untested) patch. Uros.
Attachment:
x.diff.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |