The only Solaris 9 binary I could find was from his website at: http://www.members.optushome.com.au/bobl/
The only problem is that it is 20040309, which is over a year and a half old and it has the RTLD_FIRST problem.
various combinations of symlinking /usr/ccs/bin/as to /opt/sfw/bin/gas and back, with and without running configure between makes does change the output significantly. Some combinations give the Assembler Message Unknown pseudo-op '.half', but most combinations give the illegal mnemonic or dozens of the following error:
(standard input): Assembler messages: (standard input): 4802: Error: Rest of line ignored. First ignored character is '@''
Since changing the symlink appears to change the behaviour, I would assume that gcc IS trying to use as instead of gas, but it also seems that adding the symlink and running configure should make it use gas.
Now Im really confused.
I read somewhere that someone had to maually configure gcc to use gas. Not sure how to do that at all, but now that is my next task.
Thanks Rob Done
At 05:28 PM 10/3/2005, you wrote: Le lun 03/10/2005 à 19:11, Rob D a écrit :
I have been trying to compile wine from source on Solaris 9 on x86. This has proven to be very frustrating.
I had to rename a struct in one of the files in the tools/windump/main.c because of a name clash, but that was easy.
I am pretty new to the whole compiling from source thing on Unix, but have built several packages (including Wine), on various Linux platforms and a few on Solaris. The main problem I seem to be having is with the assembler portion.
All goes well until it gets to the d3d8 directory, and I get the following:
[snip]
I thought at first that it was inadvertently using the AS assembler, but apparently the AS = gas in the Makefile says otherwise. Not sure where to go from here, since the /var/tmp files disappear immediately.
Are you sure your gcc is setup to use gas and not as? There's a section about that on Solaris in README. The same kind of problem can happen too with ld.
Robert Lunnon makes some Solaris version of Wine, maybe you could find them.
Vincent
On Tuesday 04 October 2005 11:31, Rob D wrote:
The only Solaris 9 binary I could find was from his website at: http://www.members.optushome.com.au/bobl/
The only problem is that it is 20040309, which is over a year and a half old and it has the RTLD_FIRST problem.
various combinations of symlinking /usr/ccs/bin/as to /opt/sfw/bin/gas and back, with and without running configure between makes does change the output significantly. Some combinations give the Assembler Message Unknown pseudo-op '.half', but most combinations give the illegal mnemonic or dozens of the following error:
(standard input): Assembler messages: (standard input): 4802: Error: Rest of line ignored. First ignored character is '@''
Since changing the symlink appears to change the behaviour, I would assume that gcc IS trying to use as instead of gas, but it also seems that adding the symlink and running configure should make it use gas.
Now Im really confused.
I read somewhere that someone had to maually configure gcc to use gas. Not sure how to do that at all, but now that is my next task.
Thanks Rob Done
<snip>
You have a ways to go, Wine needs a gnu toolchain to build in particular I recommend gcc configured to use gas for assembly and solaris ld for linking. This is the way Sun set up the gcc that comes with Solaris 10 - Thank you Sun, saves me building my own gcc ! You cant just link gas to replace as since the gcc compiler driver will pass it the wrong flags. Go the hard yards and build your gcc the right way.
Anyway, I have a sysv Binary package of 25072005 ready to go once I finish negotiating the hosting space for it on blastwave. Must admit this is for Solaris 10 though. Solaris 9 is more problematic for late versions since there are significant differences in Solaris 9 and 10 interfaces upon which Wine depends. Solaris 9 threading can be a bit unstable with Wine, but Solaris 10 threads appear rock stable. I *can* produce a solaris 9 version but I only have one build system, its a very manual process and there is not much demand - you are the first to ask.
After I've set up the new website I intend to automate a weekly build of the Solaris 10 version for those who like to be at the bleeding edge.
Bob
I built gcc with the recommended options, but still getting similar errors from the assembler pass of winegcc:
../../tools/winegcc/winegcc -B../../tools/winebuild -shared ./d3d8.spec basetexture.o cubetexture.o d3d8_main.o device.o directx.o drawprim.o indexbuffer.o resource.o shader.o stateblock.o surface.o swapchain.o texture.o utils.o vertexbuffer.o volume.o volumetexture.o vshaderdeclaration.o d3d8.dll.dbg.o version.res -o d3d8.dll.so -L../../dlls -L../../dlls/wined3d -L../../dlls/user32 -L../../dlls/gdi32 -L../../dlls/advapi32 -L../../dlls/kernel32 -lwined3d -luser32 -lgdi32 -ladvapi32 -lkernel32 -L../../libs/wine -lwine -ldxguid -luuid -L/usr/openwin/lib -R/usr/openwin/lib -lSM -lICE -lXext -lX11 -lsocket -lnsl -lGL -L../../libs/port -lwine_port -lresolv -lsocket -lnsl /var/tmp//ccfTpCMk.s: Assembler messages: /var/tmp//ccfTpCMk.s:513: Error: unknown pseudo-op: `.half' /var/tmp//ccfTpCMk.s:514: Error: unknown pseudo-op: `.half' /var/tmp//ccfTpCMk.s:515: Error: unknown pseudo-op: `.half' /var/tmp//ccfTpCMk.s:516: Error: unknown pseudo-op: `.half' /var/tmp//ccfTpCMk.s:517: Error: unknown pseudo-op: `.half' /var/tmp//ccfTpCMk.s:518: Error: unknown pseudo-op: `.half' /var/tmp//ccfTpCMk.s:547: Error: unrecognized symbol type "" /var/tmp//ccfTpCMk.s:547: Warning: rest of line ignored; first ignored character is `2' /var/tmp//ccfTpCMk.s:556: Error: unrecognized symbol type "" /var/tmp//ccfTpCMk.s:556: Warning: rest of line ignored; first ignored character is `2' /var/tmp//ccfTpCMk.s:565: Error: unrecognized symbol type "" /var/tmp//ccfTpCMk.s:565: Warning: rest of line ignored; first ignored character is `2' winegcc: gcc failed. gmake[2]: *** [d3d8.dll.so] Error 2 gmake[2]: Leaving directory `/export/home/opt/inst/wine-20050830/dlls/d3d8' gmake[1]: *** [d3d8] Error 2 gmake[1]: Leaving directory `/export/home/opt/inst/wine-20050830/dlls' gmake: *** [dlls] Error 2
This doesnt make sense to me. Here are a few settings on the machine:
$ which gcc /usr/local/bin/gcc $ /usr/local/bin/gcc -v Using built-in specs. Target: i386-pc-solaris2.9 Configured with: ../gcc-4.0.1/configure --with-gnu-as --with-as=/usr/local/bin/as --without-gnu-ld --with-ld=/usr/ccs/bin/ld Thread model: posix gcc version 4.0.1
$ which as /usr/local/bin/as $ /usr/local/bin/as -v GNU assembler version 2.14 (i386-pc-solaris2.9) using BFD version 2.14 20030612
Not sure where to go from here at all. This is VERY frustrating. I am downloading Wine-20050930 to try that
<snip>
You have a ways to go, Wine needs a gnu toolchain to build in particular I recommend gcc configured to use gas for assembly and solaris ld for linking. This is the way Sun set up the gcc that comes with Solaris 10 - Thank you Sun, saves me building my own gcc ! You cant just link gas to replace as since the gcc compiler driver will pass it the wrong flags. Go the hard yards and build your gcc the right way.
Anyway, I have a sysv Binary package of 25072005 ready to go once I finish negotiating the hosting space for it on blastwave. Must admit this is for Solaris 10 though. Solaris 9 is more problematic for late versions since there are significant differences in Solaris 9 and 10 interfaces upon which Wine depends. Solaris 9 threading can be a bit unstable with Wine, but Solaris 10 threads appear rock stable. I *can* produce a solaris 9 version but I only have one build system, its a very manual process and there is not much demand - you are the first to ask.
After I've set up the new website I intend to automate a weekly build of the Solaris 10 version for those who like to be at the bleeding edge.
Bob
Rob D rddone@att.net writes:
I built gcc with the recommended options, but still getting similar errors from the assembler pass of winegcc:
../../tools/winegcc/winegcc -B../../tools/winebuild -shared ./d3d8.spec basetexture.o cubetexture.o d3d8_main.o device.o directx.o drawprim.o indexbuffer.o resource.o shader.o stateblock.o surface.o swapchain.o texture.o utils.o vertexbuffer.o volume.o volumetexture.o vshaderdeclaration.o d3d8.dll.dbg.o version.res -o d3d8.dll.so -L../../dlls -L../../dlls/wined3d -L../../dlls/user32 -L../../dlls/gdi32 -L../../dlls/advapi32 -L../../dlls/kernel32 -lwined3d -luser32 -lgdi32 -ladvapi32 -lkernel32 -L../../libs/wine -lwine -ldxguid -luuid -L/usr/openwin/lib -R/usr/openwin/lib -lSM -lICE -lXext -lX11 -lsocket -lnsl -lGL -L../../libs/port -lwine_port -lresolv -lsocket -lnsl /var/tmp//ccfTpCMk.s: Assembler messages: /var/tmp//ccfTpCMk.s:513: Error: unknown pseudo-op: `.half' /var/tmp//ccfTpCMk.s:514: Error: unknown pseudo-op: `.half' /var/tmp//ccfTpCMk.s:515: Error: unknown pseudo-op: `.half' /var/tmp//ccfTpCMk.s:516: Error: unknown pseudo-op: `.half' /var/tmp//ccfTpCMk.s:517: Error: unknown pseudo-op: `.half' /var/tmp//ccfTpCMk.s:518: Error: unknown pseudo-op: `.half' /var/tmp//ccfTpCMk.s:547: Error: unrecognized symbol type "" /var/tmp//ccfTpCMk.s:547: Warning: rest of line ignored; first ignored character is `2' /var/tmp//ccfTpCMk.s:556: Error: unrecognized symbol type "" /var/tmp//ccfTpCMk.s:556: Warning: rest of line ignored; first ignored character is `2' /var/tmp//ccfTpCMk.s:565: Error: unrecognized symbol type "" /var/tmp//ccfTpCMk.s:565: Warning: rest of line ignored; first ignored character is `2' winegcc: gcc failed. gmake[2]: *** [d3d8.dll.so] Error 2 gmake[2]: Leaving directory `/export/home/opt/inst/wine-20050830/dlls/d3d8' gmake[1]: *** [d3d8] Error 2 gmake[1]: Leaving directory `/export/home/opt/inst/wine-20050830/dlls' gmake: *** [dlls] Error 2
This doesnt make sense to me. Here are a few settings on the machine:
You need to tweak the functions at the end of tools/winebuild/utils.c to output the right assembly for your platform. It sounds like gas doesn't behave the same way on Solaris x86 and Solaris sparc, so you probably need to add CPU checks in there.