Assembly problem with glu library

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Assembly problem with glu library

Robert Lunnon
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$                                

Reply | Threaded
Open this post in threaded view
|

Re: Assembly problem with glu library

Alexandre Julliard
Robert Lunnon <[hidden email]> 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.

--
Alexandre Julliard
[hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Assembly problem with glu library

Robert Lunnon
On Sunday 03 July 2005 01:45, Alexandre Julliard wrote:
> Robert Lunnon <[hidden email]> 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






Reply | Threaded
Open this post in threaded view
|

Re: Assembly problem with glu library

Alexandre Julliard
Robert Lunnon <[hidden email]> 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?

--
Alexandre Julliard
[hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: Assembly problem with glu library

Robert Lunnon
On Monday 04 July 2005 04:14, Alexandre Julliard wrote:

> Robert Lunnon <[hidden email]> 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