Source: libdvdread 
Version: 4.2.0+20120521
Severity: important
Tags: patch

Hi,

It looks like the 05-hurd patch in bug #640803 results in problems on
64-bit architectures, especially with a new compiles and hardened build
flags. The reason is that get_current_dir_name is not declared unless
_GNU_SOURCE is defined before including unistd.h in src/dvd_reader.c. On
64-bit architectures this can cause problems with integer to pointer
assignments: http://wiki.debian.org/ImplicitPointerConversions

Without declaring get_current_dir_name a warning is issued:
warning: implicit declaration of function
‘get_current_dir_name’ [-Wimplicit-function-declaration]
warning: assignment makes pointer from integer without a cast [enabled
by default]

Inlined below is a patch for configure.ac adding the definition of
_GNU_SOURCE to the generated Makefiles. Issuing autoreconf -i the
package configures and builds OK without the warning above. According to
the bug submitters of bug #651926, the updated patch should solve that
bug. I think it also solves #653516.

--- a/configure.ac      2012-06-08 12:01:52.000000000 +0200
+++ b/configure.ac      2012-06-14 11:59:44.000000000 +0200
@@ -184,7 +184,7 @@
 dnl cflags
 dnl ---------------------------------------------
 dnl Common cflags for all platforms
-CFLAGS="-O3 -Wall -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE $CFLAGS"
+CFLAGS="-O3 -Wall -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
-D_GNU_SOURCE $CFLAGS" 
 DEBUG_CFLAGS="-g -DDEBUG $CFLAGS"
 
 AC_SUBST(DEBUG_CFLAGS)





--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to