I Get the following assembly errors with the latest cvs, even with the very latest gas (2.16.1), any takers on why ?
bash-3.00$ ../../tools/winegcc/winegcc -v -B../../tools/winebuild -shared ./glu32.spec glu.o glu32.dll.dbg.o -o glu32.dll.so -L../../dlls -L../../dlls/kernel32 -L../../dlls/ntdll -lkernel32 -lntdll -L../../libs/wine -lwine -L/usr/X11R6/lib -R/usr/X11R6/lib -lSM -lICE -lXxf86dga -lXxf86vm -lXext -lX11 -lsocket -lnsl -lGL -lGLU -L../../libs/port -lwine_port -L /opt/sfw/cups/lib -lrt -lthread -lresolv -lsocket -lnsl ../../tools/winebuild/winebuild --ld-cmd ld -D_REENTRANT -fPIC --dll -o glu32.dll-2meiRn.spec.c -E ./glu32.spec -L../../dlls -L../../dlls/kernel32 -L../../dlls/ntdll -L../../libs/wine -L/usr/X11R6/lib -L../../libs/port -L/opt/sfw/cups/lib glu.o glu32.dll.dbg.o -lkernel32 -lntdll ../../libs/port/libwine_port.a gcc -D_REENTRANT -fPIC -DWIN32 -D_WIN32 -D__WIN32 -D__WIN32__ -D__WINNT -D__WINNT__ -D__stdcall=__attribute__((__stdcall__)) -D__cdecl=__attribute__((__cdecl__)) -D__fastcall=__attribute__((__fastcall__)) -D_stdcall=__attribute__((__stdcall__)) -D_cdecl=__attribute__((__cdecl__)) -D_fastcall=__attribute__((__fastcall__)) -D__declspec(x)=__declspec_##x -D__declspec_align(x)=__attribute__((aligned(x))) -D__declspec_allocate(x)=__attribute__((section(x))) -D__declspec_deprecated=__attribute__((deprecated)) -D__declspec_dllimport=__attribute__((dllimport)) -D__declspec_dllexport=__attribute__((dllexport)) -D__declspec_naked=__attribute__((naked)) -D__declspec_noinline=__attribute__((noinline)) -D__declspec_noreturn=__attribute__((noreturn)) -D__declspec_nothrow=__attribute__((nothrow)) -D__declspec_novtable=__attribute__(()) -D__declspec_selectany=__attribute__((weak)) -D__declspec_thread=__thread -D__WINE__ -D__int8=char -D__int16=short -D__int32=int -D__int64=long long -c -o glu32.dll-2meiRn.spec-0MrsCF.o -v -R/usr/X11R6/lib glu32.dll-2meiRn.spec.c Reading specs from /opt/gcc343/lib/gcc/i386-pc-solaris2.10/3.4.3/specs Configured with: ./configure --with-gnu-as --with-as=/usr/sfw/bin/gas --prefix=/opt/gcc343 Thread model: posix gcc version 3.4.3 /opt/gcc343/libexec/gcc/i386-pc-solaris2.10/3.4.3/cc1 -quiet -v -D_REENTRANT -DWIN32 -D_WIN32 -D__WIN32 -D__WIN32__ -D__WINNT -D__WINNT__ -D__stdcall=__attribute__((__stdcall__)) -D__cdecl=__attribute__((__cdecl__)) -D__fastcall=__attribute__((__fastcall__)) -D_stdcall=__attribute__((__stdcall__)) -D_cdecl=__attribute__((__cdecl__)) -D_fastcall=__attribute__((__fastcall__)) -D__declspec(x)=__declspec_##x -D__declspec_align(x)=__attribute__((aligned(x))) -D__declspec_allocate(x)=__attribute__((section(x))) -D__declspec_deprecated=__attribute__((deprecated)) -D__declspec_dllimport=__attribute__((dllimport)) -D__declspec_dllexport=__attribute__((dllexport)) -D__declspec_naked=__attribute__((naked)) -D__declspec_noinline=__attribute__((noinline)) -D__declspec_noreturn=__attribute__((noreturn)) -D__declspec_nothrow=__attribute__((nothrow)) -D__declspec_novtable=__attribute__(()) -D__declspec_selectany=__attribute__((weak)) -D__declspec_thread=__thread -D__WINE__ -D__int8=char -D__int16=short -D__int32=int -D__int64=long long glu32.dll-2meiRn.spec.c -quiet -dumpbase glu32.dll-2meiRn.spec.c -auxbase-strip glu32.dll-2meiRn.spec-0MrsCF.o -version -fPIC -o /var/tmp//ccW8C5Cs.s ignoring nonexistent directory "/opt/gcc343/lib/gcc/i386-pc-solaris2.10/3.4.3/../../../../i386-pc-solaris2.10/include" #include "..." search starts here: #include <...> search starts here: /usr/local/include /opt/gcc343/include /opt/gcc343/lib/gcc/i386-pc-solaris2.10/3.4.3/include /usr/include End of search list. GNU C version 3.4.3 (i386-pc-solaris2.10) compiled by GNU C version 3.3.3. GGC heuristics: --param ggc-min-expand=82 --param ggc-min-heapsize=98248 /usr/sfw/bin/gas -V -Qy -s -o glu32.dll-2meiRn.spec-0MrsCF.o /var/tmp//ccW8C5Cs.s GNU assembler version 2.16.1 (i386-pc-solaris2.10) using BFD version 2.16.1 /var/tmp//ccW8C5Cs.s: Assembler messages: /var/tmp//ccW8C5Cs.s:455: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:456: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:457: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:458: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:459: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:460: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:461: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:462: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:463: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:464: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:465: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:466: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:467: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:468: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:469: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:470: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:471: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:472: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:473: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:474: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:475: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:476: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:477: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:478: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:479: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:480: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:481: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:482: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:483: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:484: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:485: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:486: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:487: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:488: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:489: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:490: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:491: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:492: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:493: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:494: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:495: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:496: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:497: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:498: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:499: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:500: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:501: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:502: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:503: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:504: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:505: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:506: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:507: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:508: Error: unknown pseudo-op: `.half' /var/tmp//ccW8C5Cs.s:669: Error: unrecognized symbol type "" /var/tmp//ccW8C5Cs.s:669: Error: junk at end of line, first unrecognized character is `2' /var/tmp//ccW8C5Cs.s:678: Error: unrecognized symbol type "" /var/tmp//ccW8C5Cs.s:678: Error: junk at end of line, first unrecognized character is `2' /var/tmp//ccW8C5Cs.s:687: Error: unrecognized symbol type "" /var/tmp//ccW8C5Cs.s:687: Error: junk at end of line, first unrecognized character is `2' /var/tmp//ccW8C5Cs.s:696: Error: unrecognized symbol type "" /var/tmp//ccW8C5Cs.s:696: Error: junk at end of line, first unrecognized character is `2' winegcc: gcc failed. bash-3.00$
Robert Lunnon bobl@optushome.com.au writes:
I Get the following assembly errors with the latest cvs, even with the very latest gas (2.16.1), any takers on why ?
winebuild is no longer using autoconf checks now that the platform can be set at run-time. You need to adapt the functions at the end of winebuild/utils.c, I put in some rough guesses but they are probably wrong for Solaris.
On Sunday 03 July 2005 01:45, Alexandre Julliard wrote:
Robert Lunnon bobl@optushome.com.au writes:
I Get the following assembly errors with the latest cvs, even with the very latest gas (2.16.1), any takers on why ?
winebuild is no longer using autoconf checks now that the platform can be set at run-time. You need to adapt the functions at the end of winebuild/utils.c, I put in some rough guesses but they are probably wrong for Solaris.
They probably will. There are two cases that need to be catered for on a runtime Solaris / OpenSolariss system, gcc linked with solaris as (Sunfreeware / GCC Default config ) and gcc linked with gnu as (which is now being supplied on the companion CD by Sun) such as is required to actually build wine. At runtime we cannot necessarily expect to get the same compiler wine was built with.
For the moment its probably easier to require the config that is needed to build wine in the first place since most code will be written to this (AT&T vs Intel assembly also reverses the operand order of the assembler, swapping source and destination regs, I'm not sure gcc handles this in asm sections).
This would make things the same as linux I think.
Bob
Robert Lunnon bobl@optushome.com.au writes:
They probably will. There are two cases that need to be catered for on a runtime Solaris / OpenSolariss system, gcc linked with solaris as (Sunfreeware / GCC Default config ) and gcc linked with gnu as (which is now being supplied on the companion CD by Sun) such as is required to actually build wine. At runtime we cannot necessarily expect to get the same compiler wine was built with.
The ideal case would be to have a #ifdef for which assembler is used so that the same generated code could compile on both, but I'm guessing gcc doesn't export anything of the kind right?
On Monday 04 July 2005 04:14, Alexandre Julliard wrote:
Robert Lunnon bobl@optushome.com.au writes:
They probably will. There are two cases that need to be catered for on a runtime Solaris / OpenSolariss system, gcc linked with solaris as (Sunfreeware / GCC Default config ) and gcc linked with gnu as (which is now being supplied on the companion CD by Sun) such as is required to actually build wine. At runtime we cannot necessarily expect to get the same compiler wine was built with.
The ideal case would be to have a #ifdef for which assembler is used so that the same generated code could compile on both, but I'm guessing gcc doesn't export anything of the kind right?
Right !, I could use a registry variable to decide so at least it could be setup at runtime. It's not hard to actually determine GCCs build and which as is used (I already did this for wines configure.ac) so this could be done on first run (like building the font metrics).
I also dug in a bit more, the variations in util.c are not differences between Solaris as and gas but rather are differences between the x86 gas and the SPARC gas. GNU as for SPARC these days supports .string and .short so it's safe to use those for both x86 and SPARC. This is how I have handled this for the moment. I would still like to make winebuild as independent if I could. But this would mean more work, because Solaris AS doesn't support .short its .2byte instead.
Bob