Build problem for 1.6.5 under Gentoo [solved]

The place to discuss linux version of MakeMKV
Post Reply
Message
Author
BitJam2
Posts: 53
Joined: Wed Sep 01, 2010 7:04 am

Build problem for 1.6.5 under Gentoo [solved]

#1 Post by BitJam2 » Tue Feb 22, 2011 7:37 pm

Here is the failed command:

Code: Select all

x86_64-pc-linux-gnu-gcc -march=athlon64 -O2 -pipe -Wl,-O1 -Wl,--as-needed -oout/makemkv.full -Imakemkvgui/inc -Ilibmakemkv/inc -Isstring/inc -Ilibdriveio/inc \
	makemkvgui/src/aboutbox.cpp makemkvgui/src/client.cpp makemkvgui/src/dirselectbox.cpp makemkvgui/src/logic.cpp makemkvgui/src/logtext.cpp makemkvgui/src/main.cpp makemkvgui/src/nativefiledialog.cpp makemkvgui/src/mainwnd.cpp makemkvgui/src/marshall.cpp makemkvgui/src/progress.cpp makemkvgui/src/scsiinfo.cpp makemkvgui/src/settingdlg.cpp makemkvgui/src/uisync.cpp makemkvgui/src/viteminfo.cpp makemkvgui/src/backupdlg.cpp makemkvgui/src/lstring.cpp makemkvgui/src/notify.cpp makemkvgui/src/str/en_utf16.cpp makemkvgui/src/api_posix.cpp makemkvgui/src/api_linux.cpp makemkvgui/src/logic_posix.cpp makemkvgui/src/notify_linux.cpp tmp/qt_rsrc.cpp tmp/moc_mainwnd.cpp tmp/moc_logtext.cpp tmp/moc_dirselectbox.cpp tmp/moc_aboutbox.cpp tmp/moc_settingdlg.cpp tmp/moc_backupdlg.cpp sstring/src/sstring.cpp libdriveio/src/srlist.cpp \
	-DHAVE_BUILDINFO_H -Itmp \
	-I/usr/include/qt4 -I/usr/lib/qt4/include -L/usr/lib/qt4 -L/usr/lib/qt4/lib -lc -lstdc++ \
	-lQtGui -lQtCore -lQtDBus -lpthread -lz -lrt
objcopy --strip-all --strip-debug --strip-unneeded --discard-all out/libdriveio.so.0.full out/libdriveio.so.0 
libabi/src/sys_linux.c:29: warning: ‘struct stat64’ declared inside parameter list
libabi/src/sys_linux.c:29: warning: its scope is only this definition or declaration, which is probably not what you want
libabi/src/sys_linux.c: In function ‘statcvt’:
libabi/src/sys_linux.c:31: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c:32: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c:33: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c:34: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c: In function ‘SYS_nstat’:
libabi/src/sys_linux.c:39: error: storage size of ‘st’ isn’t known
libabi/src/sys_linux.c: In function ‘SYS_fstat’:
libabi/src/sys_linux.c:54: error: storage size of ‘st’ isn’t known
libabi/src/sys_linux.c: In function ‘SYS_readdir’:
libabi/src/sys_linux.c:73: error: field ‘ent’ has incomplete type
libabi/src/sys_linux.c:84: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c: At top level:
libabi/src/sys_linux.c:95: warning: ‘struct statfs64’ declared inside parameter list
libabi/src/sys_linux.c: In function ‘statfscvt’:
libabi/src/sys_linux.c:97: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c:98: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c:99: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c:100: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c:103: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c: In function ‘SYS_nstatfs’:
libabi/src/sys_linux.c:108: error: storage size of ‘st’ isn’t known
libabi/src/sys_linux.c: In function ‘SYS_fstatfs’:
libabi/src/sys_linux.c:123: error: storage size of ‘st’ isn’t known
make: *** [out/libmakemkv.so.1.full] Error 1
make: *** Waiting for unfinished jobs....
makemkvgui/src/logic_posix.cpp: In function ‘uint64_t get_free_space(const utf16_t*)’:
makemkvgui/src/logic_posix.cpp:53: error: aggregate ‘statfs st’ has incomplete type and cannot be defined
makemkvgui/src/logic_posix.cpp:61: error: invalid use of incomplete type ‘struct statfs’
makemkvgui/src/logic_posix.cpp:53: error: forward declaration of ‘struct statfs’
make: *** [out/makemkv.full] Error 1
The first warning/error messages are:

libabi/src/sys_linux.c:29: warning: ‘struct stat64’ declared inside parameter list
libabi/src/sys_linux.c:29: warning: its scope is only this definition or declaration, which is probably not what you want
ibabi/src/sys_linux.c: In function ‘statcvt’:
libabi/src/sys_linux.c:31: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c:32: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c:33: error: dereferencing pointer to incomplete type

[etc]
Last edited by BitJam2 on Sat Feb 26, 2011 7:13 pm, edited 1 time in total.

mike admin
Posts: 4075
Joined: Wed Nov 26, 2008 2:26 am
Contact:

Re: Build problem for 1.6.5 under Gentoo

#2 Post by mike admin » Thu Feb 24, 2011 10:11 am

BitJam2 wrote:Here is the failed command:

Code: Select all

x86_64-pc-linux-gnu-gcc -march=athlon64 -O2 -pipe -Wl,-O1 -Wl,--as-needed -oout/makemkv.full -Imakemkvgui/inc -Ilibmakemkv/inc -Isstring/inc -Ilibdriveio/inc \
	makemkvgui/src/aboutbox.cpp makemkvgui/src/client.cpp makemkvgui/src/dirselectbox.cpp makemkvgui/src/logic.cpp makemkvgui/src/logtext.cpp makemkvgui/src/main.cpp makemkvgui/src/nativefiledialog.cpp makemkvgui/src/mainwnd.cpp makemkvgui/src/marshall.cpp makemkvgui/src/progress.cpp makemkvgui/src/scsiinfo.cpp makemkvgui/src/settingdlg.cpp makemkvgui/src/uisync.cpp makemkvgui/src/viteminfo.cpp makemkvgui/src/backupdlg.cpp makemkvgui/src/lstring.cpp makemkvgui/src/notify.cpp makemkvgui/src/str/en_utf16.cpp makemkvgui/src/api_posix.cpp makemkvgui/src/api_linux.cpp makemkvgui/src/logic_posix.cpp makemkvgui/src/notify_linux.cpp tmp/qt_rsrc.cpp tmp/moc_mainwnd.cpp tmp/moc_logtext.cpp tmp/moc_dirselectbox.cpp tmp/moc_aboutbox.cpp tmp/moc_settingdlg.cpp tmp/moc_backupdlg.cpp sstring/src/sstring.cpp libdriveio/src/srlist.cpp \
	-DHAVE_BUILDINFO_H -Itmp \
	-I/usr/include/qt4 -I/usr/lib/qt4/include -L/usr/lib/qt4 -L/usr/lib/qt4/lib -lc -lstdc++ \
	-lQtGui -lQtCore -lQtDBus -lpthread -lz -lrt
objcopy --strip-all --strip-debug --strip-unneeded --discard-all out/libdriveio.so.0.full out/libdriveio.so.0 
libabi/src/sys_linux.c:29: warning: ‘struct stat64’ declared inside parameter list
libabi/src/sys_linux.c:29: warning: its scope is only this definition or declaration, which is probably not what you want
libabi/src/sys_linux.c: In function ‘statcvt’:
libabi/src/sys_linux.c:31: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c:32: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c:33: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c:34: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c: In function ‘SYS_nstat’:
libabi/src/sys_linux.c:39: error: storage size of ‘st’ isn’t known
libabi/src/sys_linux.c: In function ‘SYS_fstat’:
libabi/src/sys_linux.c:54: error: storage size of ‘st’ isn’t known
libabi/src/sys_linux.c: In function ‘SYS_readdir’:
libabi/src/sys_linux.c:73: error: field ‘ent’ has incomplete type
libabi/src/sys_linux.c:84: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c: At top level:
libabi/src/sys_linux.c:95: warning: ‘struct statfs64’ declared inside parameter list
libabi/src/sys_linux.c: In function ‘statfscvt’:
libabi/src/sys_linux.c:97: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c:98: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c:99: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c:100: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c:103: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c: In function ‘SYS_nstatfs’:
libabi/src/sys_linux.c:108: error: storage size of ‘st’ isn’t known
libabi/src/sys_linux.c: In function ‘SYS_fstatfs’:
libabi/src/sys_linux.c:123: error: storage size of ‘st’ isn’t known
make: *** [out/libmakemkv.so.1.full] Error 1
make: *** Waiting for unfinished jobs....
makemkvgui/src/logic_posix.cpp: In function ‘uint64_t get_free_space(const utf16_t*)’:
makemkvgui/src/logic_posix.cpp:53: error: aggregate ‘statfs st’ has incomplete type and cannot be defined
makemkvgui/src/logic_posix.cpp:61: error: invalid use of incomplete type ‘struct statfs’
makemkvgui/src/logic_posix.cpp:53: error: forward declaration of ‘struct statfs’
make: *** [out/makemkv.full] Error 1
The first warning/error messages are:

libabi/src/sys_linux.c:29: warning: ‘struct stat64’ declared inside parameter list
libabi/src/sys_linux.c:29: warning: its scope is only this definition or declaration, which is probably not what you want
ibabi/src/sys_linux.c: In function ‘statcvt’:
libabi/src/sys_linux.c:31: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c:32: error: dereferencing pointer to incomplete type
libabi/src/sys_linux.c:33: error: dereferencing pointer to incomplete type

[etc]
You're certainly using a custom makefile. Why? Yor makefile lacks -DGNU_SOURCE option for the compiler.

splurben
Posts: 4
Joined: Thu Feb 03, 2011 2:40 am

Re: Build problem for 1.6.5 under Gentoo

#3 Post by splurben » Fri Feb 25, 2011 3:17 am

I'm using Gentoo (amd64) and didn't encounter any problems installing 1.6.5.

I've attached my emerge info.

BitJam2
Posts: 53
Joined: Wed Sep 01, 2010 7:04 am

Re: Build problem for 1.6.5 under Gentoo

#4 Post by BitJam2 » Fri Feb 25, 2011 9:05 pm

Thank you both for replying.

@mike admin,

I'm certain I'm *not* using a custom makefile. I'm using the same ebuild file that worked with version 1.6.3. There are no files in the build directory that did not come from one of your tarballs.

Turns out the problem was reported in comment #38 here: http://bugs.gentoo.org/show_bug.cgi?id=280347#c38

They say I had the problem because I was using the stock makefile. As per the bug report, I needed to add the following to my GCC variable in the emake line in order to get it to compile:

Code: Select all

 -O2 -D_GNU_SOURCE -D_linux_
The bug report said:
Seems like the makefile.linux doesn't like the GCC variable being overridden by
the make invocation of the ebuild, as it looses some defines. I didn't delve
into this, but just worked around it but providing the missing defines in the
src_compile() section of the ebuild: [...] This isn't a fix. I believe the makemkv makefile needs some attention.

mike admin
Posts: 4075
Joined: Wed Nov 26, 2008 2:26 am
Contact:

Re: Build problem for 1.6.5 under Gentoo

#5 Post by mike admin » Sat Feb 26, 2011 10:36 am

BitJam2 wrote:Thank you both for replying.

@mike admin,

I'm certain I'm *not* using a custom makefile. I'm using the same ebuild file that worked with version 1.6.3. There are no files in the build directory that did not come from one of your tarballs.

Turns out the problem was reported in comment #38 here: http://bugs.gentoo.org/show_bug.cgi?id=280347#c38

They say I had the problem because I was using the stock makefile. As per the bug report, I needed to add the following to my GCC variable in the emake line in order to get it to compile:

Code: Select all

 -O2 -D_GNU_SOURCE -D_linux_
The bug report said:
Seems like the makefile.linux doesn't like the GCC variable being overridden by
the make invocation of the ebuild, as it looses some defines. I didn't delve
into this, but just worked around it but providing the missing defines in the
src_compile() section of the ebuild: [...] This isn't a fix. I believe the makemkv makefile needs some attention.
Fair enough, noted.

Post Reply