Opened 14 years ago

Closed 14 years ago

Last modified 13 months ago

#2642 closed defect (fixed)

0.9.0 from SVN does not build on Solaris 10

Reported by: SF/lblume Owned by: sev-
Priority: high Component: Port: Solaris
Keywords: Cc:
Game:

Description

On Solaris 10 AMD54, the build fails with the following:

mkdir -p backends/fs/posix/.deps g++ -Wp,-MMD,"backends/fs/posix/.deps/posix-fs.d",-MQ,"backends/fs/posix/posix-fs.o",-MP -Wall -m64 -mtune=opteron -R/opt/games/scummvm/lib -I/opt/games/scummvm/include -g -ansi -W -Wno-unused-parameter -O -Wuninitialized -Wno-long-long -Wno-multichar -Wno-unknown-pragmas -pedantic -Wpointer-arith -Wcast-qual -Wconversion -Wshadow -Wimplicit -Wundef -Wnon-virtual-dtor -Wno-reorder -Wwrite-strings -fno-rtti -fno-exceptions -fcheck-new -DHAVE_CONFIG_H -DUNIX -DDISABLE_CINE -DDISABLE_AGI -I. -I. -I./engines -I/opt/games/scummvm/include -I/opt/games/scummvm/include -I/opt/games/scummvm/include -I/opt/games/scummvm/include -I/opt/games/scummvm/include -I/opt/games/scummvm/include/SDL -D_REENTRANT -c backends/fs/posix/posix-fs.cpp -o backends/fs/posix/posix-fs.o backends/fs/posix/posix-fs.cpp: In member function `virtual bool POSIXFilesystemNode::listDir(AbstractFSList&, FilesystemNode::ListMode) const': backends/fs/posix/posix-fs.cpp:177: error: 'struct dirent' has no member named 'd_type' backends/fs/posix/posix-fs.cpp:177: error: `DT_UNKNOWN' undeclared (first use this function) backends/fs/posix/posix-fs.cpp:177: error: (Each undeclared identifier is reported only once for each function it appears in.) backends/fs/posix/posix-fs.cpp:183: error: 'struct dirent' has no member named 'd_type' backends/fs/posix/posix-fs.cpp:183: error: `DT_DIR' undeclared (first use this function) backends/fs/posix/posix-fs.cpp:183: error: 'struct dirent' has no member named 'd_type' backends/fs/posix/posix-fs.cpp:183: error: `DT_REG' undeclared (first use this function) backends/fs/posix/posix-fs.cpp:183: error: 'struct dirent' has no member named 'd_type' backends/fs/posix/posix-fs.cpp:183: error: `DT_LNK' undeclared (first use this function) backends/fs/posix/posix-fs.cpp:184: error: 'struct dirent' has no member named 'd_type' backends/fs/posix/posix-fs.cpp:191: error: 'struct dirent' has no member named 'd_type' gmake: *** [backends/fs/posix/posix-fs.o] Error 1

The parameters used were the exact same I used successfully for 0.8.2:

CFLAGS='-m64 -mtune=opteron' \ CXXFLAGS="-m64 -mtune=opteron -R/opt/games/scummvm/lib" \ CPPFLAGS="-I/opt/games/scummvm/include" \ LDFLAGS="-m64 -mtune=opteron -lX11 -lXext -lnsl -lsocket -L/usr/openwin/lib/64 -R/usr/openwin/lib/64 -L/usr/X11/lib/64 -R/usr/X11/lib/64 -L/opt/games/scummvm/lib -R/opt/games/scummvm/lib" \ ./configure --prefix=/opt/games/scummvm \ --enable-plugins \ --with-ogg-prefix=/opt/games/scummvm \ --with-vorbis-prefix=/opt/games/scummvm \ --with-mad-prefix=/opt/games/scummvm \ --with-flac-prefix=/opt/games/scummvm \ --with-mpeg2-prefix=/opt/games/scummvm \ --enable-kyra \ --enable-lure LD_OPTIONS='-R$ORIGIN/../lib' gmake MAKE=gmake CC=gcc

From dirent.h(3HEAD):

The header also defines the structure dirent, which includes the following members:

ino_t d_ino /* file serial number */ char d_name[] /* name of entry */

The type ino_t is defined as described in <sys/types.h>. See types(3HEAD).

So d_type can't be used, but I can't help about what would be a good workaround for that platform.

Ticket imported from: #1497973. Ticket imported from: bugs/2642.

Change History (6)

comment:1 by sev-, 14 years ago

I tweaked configure. Please, test.

comment:2 by sev-, 14 years ago

Owner: set to sev-
Priority: normalhigh

comment:3 by SF/lblume, 14 years ago

Perfect, I did the checkout, configured again, and it built without a hitch:

$ file scummvm scummvm: ELF 64-bit LSB executable AMD64 Version 1, dynamically linked, stripped

I'll start testing at home tonight. Thanks a lot!

comment:4 by sev-, 14 years ago

Resolution: fixed
Status: newclosed

comment:5 by digitall, 13 months ago

Component: --Unset--Ports

comment:6 by digitall, 13 months ago

Component: PortsPort: Solaris
Note: See TracTickets for help on using tickets.