[Bug 12008] New: wined3d dll changes in 0.9.57 broke Solaris gcc build

wine-bugs at winehq.org wine-bugs at winehq.org
Wed Mar 12 09:56:10 CDT 2008


http://bugs.winehq.org/show_bug.cgi?id=12008

           Summary: wined3d dll changes in 0.9.57 broke Solaris gcc build
           Product: Wine
           Version: 0.9.57.
          Platform: PC
        OS/Version: Solaris
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: build-env
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: petr.sumbera at sun.com


Wine gcc build on Solaris now fails with following error:

../../tools/winegcc/winegcc -B../../tools/winebuild -shared ./wined3d.spec   
arb_program_shader.o baseshader.o basetexture.o clipper.o context.o
cubetexture.o device.o directx.o drawprim.o glsl_shader.o indexbuffer.o
palette.o pixelshader.o query.o resource.o state.o stateblock.o surface_base.o
surface.o surface_gdi.o swapchain.o texture.o utils.o vertexbuffer.o
vertexdeclaration.o vertexshader.o volume.o volumetexture.o wined3d_main.o     
 -o wined3d.dll.so  -luser32 -lgdi32 -ladvapi32 -lkernel32  -luuid
../../libs/port/libwine_port.a  -lsocket -lnsl 
Undefined                       first referenced
 symbol                             in file
isinf                               surface_base.o
ld: fatal: Symbol referencing errors. No output written to wined3d.dll.so
collect2: ld returned 1 exit status
winegcc: gcc failed
gmake[2]: *** [wined3d.dll.so] Error 2
gmake[2]: Leaving directory `/builds/WINE/wine-0.9.57/dlls/wined3d'
gmake[1]: *** [wined3d] Error 2
gmake[1]: Leaving directory `/builds/WINE/wine-0.9.57/dlls'
gmake: *** [dlls] Error 2

In Wine 0.9.57 there was for the first time in Wine used function isinf() in
following header file source/dlls/wined3d/wined3d_private.h.

There are some problems with this function on Solaris:

http://www.webservertalk.com/archive100-2005-7-1149187.html

Currently on Solaris with gcc compiler macro "isinf" (and others) is defined
when __C99FEATURES__ is defined (a.k.a. -std=c99). Note, that Wine as whole
cannot be compiled as C99 code as it's using M_PI (which is no longer defined
with C99 in math.h).

As workaround Solaris users can use -std=gnu99 as followed:

CFLAGS=-std=gnu99 ./configure

Final resolution should be probably one of these:
- configure check for isinf availability and eventually define it itself
- enforce C99 build (for at least some Wine parts)

Tested with:
Solaris Nevada build 83
gcc 3.4.3 (bundled with Solaris)


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list