Opened 13 years ago

Closed 13 years ago

Last modified 11 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-, 13 years ago

I tweaked configure. Please, test.

comment:2 by sev-, 13 years ago

Owner: set to sev-
Priority: normalhigh

comment:3 by SF/lblume, 13 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-, 13 years ago

Resolution: fixed
Status: newclosed

comment:5 by digitall, 11 months ago

Component: --Unset--Ports

comment:6 by digitall, 11 months ago

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