------- Comment #3 from rob1weld at aol dot com  2009-02-14 02:06 -------
The next issue is here:

../gcc_trunk/gcc/unwind-dw2.c and ../gcc_trunk/gcc/unwind-dw2-fde.c, etc ...


../../../../gcc_trunk/libgcc/../gcc/gthr-posix.h:44:21: error: pthread.h: No
such file or directory
../../../../gcc_trunk/libgcc/../gcc/gthr-posix.h:45:20: error: unistd.h: No
such file or directory
In file included from ../../.././gcc/gthr-default.h:1,
                 from ../../../../gcc_trunk/libgcc/../gcc/gthr.h:165,
                 from ../../../../gcc_trunk/libgcc/../gcc/unwind-dw2.c:42:
../../../../gcc_trunk/libgcc/../gcc/gthr-posix.h:47: error: expected ‘=’, ‘,’,
‘;’, ‘asm’ or ‘__attribute__’ before ‘__gthread_t’


I built that one file manually by adding "-I/usr/include" to the
list of include directories, that allowed it to find "pthread.h"
and "unistd.h".


I tried adding "-I/usr/include" into the Makefile in
../gcc_build/x86_64-pc-solaris2.11/amd64/libgcc like this:

# Specify the directories to be searched for header files.
# Both . and srcdir are used, in that order,
# so that *config.h will be found in the compilation
# subdirectory rather than in the source directory.
# -I$(@D) and -I$(srcdir)/$(@D) cause the subdirectory of the file
# currently being compiled, in both source trees, to be examined as well.
INCLUDES = -I. -I$(@D) -I$(gcc_objdir) \
           -I$(srcdir) -I$(srcdir)/$(@D) -I$(srcdir)/../gcc \
           -I$(srcdir)/../include $(DECNUMINC) -I/usr/include


That works for a while but when I get here:

/usr/share/src/gcc_build/./gcc/xgcc -v -B/usr/share/src/gcc_build/./gcc/
-B/usr/local/x86_64-pc-solaris2.11/bin/ -B/usr/local/x86_64-pc-solaris2.11/lib/
-isystem /usr/local/x86_64-pc-solaris2.11/include -isystem
/usr/local/x86_64-pc-solaris2.11/sys-include -O2 -g -O2 -DIN_GCC
-DCROSS_DIRECTORY_STRUCTURE -DNATIVE_CROSS  -W -Wall -Wwrite-strings
-Wstrict-prototypes -Wmissing-prototypes -Wcast-qual -Wold-style-definition 
-isystem ./include  -I.
-I/usr/share/src/gcc_build/x86_64-pc-solaris2.11/amd64/libgcc
-I../../gcc_trunk/gcc
-I../../gcc_trunk/gcc//usr/share/src/gcc_build/x86_64-pc-solaris2.11/amd64/libgcc
-I../../gcc_trunk/gcc/../include -I./../intl
-I../../gcc_trunk/gcc/../libcpp/include -I/usr/local/include
-I/usr/local/include -I../../gcc_trunk/gcc/../libdecnumber
-I../../gcc_trunk/gcc/../libdecnumber/dpd -I../libdecnumber   -g -O2 -m64 -g0
-finhibit-size-directive -fno-inline-functions -fno-exceptions
-fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize
-Dinhibit_libc -c ../../gcc_trunk/gcc/crtstuff.c -DCRT_BEGIN --save-temps -o
/usr/share/src/gcc_build/x86_64-pc-solaris2.11/amd64/libgcc/crtbegin.o

I get this:

...
 /usr/local/bin/as -v -I.
-I/usr/share/src/gcc_build/x86_64-pc-solaris2.11/amd64/libgcc
-I../../gcc_trunk/gcc
-I../../gcc_trunk/gcc//usr/share/src/gcc_build/x86_64-pc-solaris2.11/amd64/libgcc
-I../../gcc_trunk/gcc/../include -I./../intl
-I../../gcc_trunk/gcc/../libcpp/include -I/usr/local/include
-I/usr/local/include -I../../gcc_trunk/gcc/../libdecnumber
-I../../gcc_trunk/gcc/../libdecnumber/dpd -I../libdecnumber -V -Qy --64 -s -o
/usr/share/src/gcc_build/x86_64-pc-solaris2.11/amd64/libgcc/crtbegin.o
crtstuff.s
GNU assembler version 2.19.1 (i386-pc-solaris2.11) using BFD version (GNU
Binutils) 2.19.1
crtstuff.s: Assembler messages:
crtstuff.s:91: Error: suffix or operands invalid for `pop'
crtstuff.s:92: Error: Incorrect register `%rdx' used with `l' suffix


        .p2align 4,,15
        .type   frame_dummy, @function
frame_dummy:
.LFB4:
        .cfi_startproc
        pushq   %rbp
        .cfi_def_cfa_offset 16
        movl    $__register_frame_info_bases, %eax
/APP
/ 354 "../../gcc_trunk/gcc/crtstuff.c" 1
        call    .LPR53
.LPR53:
        popl    %rdx
        addl    $_GLOBAL_OFFSET_TABLE_+[.-.LPR53],%rdx
/ 0 "" 2
/NO_APP


Line 91:        popl    %rdx
Line 92:        addl    $_GLOBAL_OFFSET_TABLE_+[.-.LPR53],%rdx

Tossing an "-m32" into the end of the "xgcc ..." command will
compile without errors. Thus, I conclude that the "-m32" for
gcc (which does produce an "--64" for the assembler) is somehow
giving us 32 bit code instead of 64 bit. Investigating ...

Rob


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39186

Reply via email to