[libbluray-devel] yes both libs seem fixed in that manner, but libaacs has more problems (MacOSX compile-link problems with libbluray & libaacs ("duplicate symbols"))

sci-fi at hush.ai sci-fi at hush.ai
Tue Aug 3 09:27:12 CEST 2010


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1



Hi,

On Mon, 02 Aug 2010 05:57:09 -0500,
hpi <hpi.libbluray at gmail.com> wrote:
>2010/8/1 <sci-fi at hush.ai>
>> Some recent commit(s) have caused the (infamous) "duplicate
>> symbol" problem with MacOSX XCode on 10.5.8 (C2D iMac):
>
>Could you try if today's version is better ?

Today's git-pull fixed the "duplicate symbol" problem
for both libbluray and libaacs.
[I'm seeing similar on other projects such as
 latest gnupg-2.0.16 now also; none of our pkg-mgrs
 have moved past 2.0.9 here, probably a clue.]

Now today's libaacs has another problem
probably related to ./configure setting
'ac_cv_header_mntent_h=no'
(which I've seen before the dup-syms came about).
I know all this is in infancy.
And I know OSX ain't a Linux system ;) (more like BSD).
So I hacked ./src/libaacs/mmc.c to comment-out
its hard-coded '#include <mntent.h>' on line 29 there
(OSX has no such file).
I don't know what is inside that header file for Linux.
But compiling it this way will result in these:

>>>>
[…]
/bin/sh ../libtool --tag=CC   --mode=compile gcc-4.2 -
DHAVE_CONFIG_H -I. -I..   -I/usr/local/ssl/include -
I/usr/X11/include -I/usr/local/include -
I/Developer/Headers/FlatCarbon -I/usr/include  -std=c99 -
D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112L -D_REENTRANT -Wall -
Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wcast-
qual -Wwrite-strings -Wundef -Wextra -Winline -fomit-frame-pointer -
g -I.. -Ifile -fast      -mtune=core2 -march=core2 -
force_cpusubtype_ALL  -arch i386  -MT keydbcfg-parser.lo -MD -MP -
MF .deps/keydbcfg-parser.Tpo -c -o keydbcfg-parser.lo keydbcfg-
parser.c
libtool: compile:  gcc-4.2 -DHAVE_CONFIG_H -I. -I.. -
I/usr/local/ssl/include -I/usr/X11/include -I/usr/local/include -
I/Developer/Headers/FlatCarbon -I/usr/include -std=c99 -
D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112L -D_REENTRANT -Wall -
Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wcast-
qual -Wwrite-strings -Wundef -Wextra -Winline -fomit-frame-pointer -
g -I.. -Ifile -fast -mtune=core2 -march=core2 -force_cpusubtype_ALL
- -arch i386 -MT keydbcfg-parser.lo -MD -MP -MF .deps/keydbcfg-
parser.Tpo -c keydbcfg-parser.c  -fno-common -DPIC -o
.libs/keydbcfg-parser.o
/usr/include/stdlib.h:160: warning: previous declaration of ‘free’
was here
keydbcfg-parser.c: In function ‘yyparse’:
keydbcfg-parser.c:1537: warning: implicit declaration of function
‘yylex’
keydbcfg-parser.y: In function ‘keydbcfg_parse_config’:
keydbcfg-parser.y:438: warning: implicit declaration of function
‘yylex_init’
keydbcfg-parser.y:439: warning: implicit declaration of function
‘yyset_in’
keydbcfg-parser.y:442: warning: implicit declaration of function
‘yylex_destroy’
[…]
/bin/sh ../../libtool --tag=CC   --mode=link gcc-4.2 -std=c99 -
D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112L -D_REENTRANT -Wall -
Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wcast-
qual -Wwrite-strings -Wundef -Wextra -Winline -fomit-frame-pointer -
g -I../.. -I../../src -I../../src/file -fast      -mtune=core2 -
march=core2 -force_cpusubtype_ALL  -arch i386   -fast      -
mtune=core2 -march=core2 -force_cpusubtype_ALL  -arch i386  -o
parser_test parser_test.o ../../src/libaacs.la ../keydbcfg-lexer.c
../keydbcfg-parser.c -lgcrypt -L/usr/local/ssl/lib -
L/usr/local/lib/libquicktime -L/usr/local/lib -L/usr/X11/lib -
L/usr/lib
libtool: link: gcc-4.2 -std=c99 -D_ISOC99_SOURCE -
D_POSIX_C_SOURCE=200112L -D_REENTRANT -Wall -Wdisabled-optimization
- -Wpointer-arith -Wredundant-decls -Wcast-qual -Wwrite-strings -
Wundef -Wextra -Winline -fomit-frame-pointer -g -I../.. -I../../src
- -I../../src/file -fast -mtune=core2 -march=core2 -
force_cpusubtype_ALL -arch i386 -fast -mtune=core2 -march=core2 -
force_cpusubtype_ALL -arch i386 -o .libs/parser_test parser_test.o
../keydbcfg-lexer.c ../keydbcfg-parser.c
../../src/.libs/libaacs.dylib -L/usr/local/ssl/lib -
L/usr/local/lib/libquicktime -L/usr/local/lib -L/usr/X11/lib -
L/usr/lib /usr/local/lib/libgcrypt.dylib /usr/local/lib/libgpg-
error.dylib /usr/local/lib/libintl.dylib
/usr/local/lib/libiconv.dylib -lc
/usr/include/unistd.h:462: warning: previous declaration of
'isatty' was here
keydbcfg-lexer.c:1934: warning: previous definition of
'yyget_lineno' was here
/usr/include/stdlib.h:160: warning: previous declaration of 'free'
was here
keydbcfg-parser.c: In function 'yyparse':
keydbcfg-parser.c:1537: warning: implicit declaration of function
'yylex'
keydbcfg-lexer.c:842: warning: previous definition of 'yylex' was
here
keydbcfg-parser.y: In function 'keydbcfg_parse_config':
keydbcfg-parser.y:438: warning: implicit declaration of function
'yylex_init'
keydbcfg-lexer.c:2086: warning: previous definition of 'yylex_init'
was here
keydbcfg-parser.y:439: warning: implicit declaration of function
'yyset_in'
keydbcfg-lexer.c:2040: warning: previous definition of 'yyset_in'
was here
keydbcfg-parser.y:439: error: incompatible implicit declaration of
function 'yyset_in'
keydbcfg-lexer.c:2040: error: previous definition of 'yyset_in' was
here
keydbcfg-parser.y:442: warning: implicit declaration of function
'yylex_destroy'
keydbcfg-lexer.c:2176: warning: previous definition of
'yylex_destroy' was here
make[4]: *** [parser_test] Error 1
make[4]: Leaving directory
`/Volumes/Big1500Doing/Projects/libaacs/src/examples'
[…]
<<<<

Doing the regular trouble-shooting,
./configure _did_ successfully find /usr/bin/flex
provided by Apple.
But in my config.log right underneath the flex test,
we get this:
>>>>
[…]
configure:10636: checking lex library
configure:10650: gcc-4.2 -o conftest  -fast      -mtune=core2 -
march=core2 -force_cpusubtype_ALL  -arch i386   -
I/usr/local/ssl/include -I/usr/X11/include -I/usr/local/include -
I/Developer/Headers/FlatCarbon -I/usr/include   -fast      -
mtune=core2 -march=core2 -force_cpusubtype_ALL  -arch i386
conftest.c  -L/usr/local/ssl/lib -L/usr/local/lib/libquicktime -
L/usr/local/lib -L/usr/X11/lib -L/usr/lib >&5
Undefined symbols:
  "_yywrap", referenced from:
      _input in ccBfy3Do.o
      _yylex in ccBfy3Do.o
      _main in ccBfy3Do.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
configure:10650: $? = 1
configure: failed program was:
[…]
<<<<

Then it went on to see -lfl worked,
find 'bison -y' ok,
and continued on.

I guess I need to find the proper headers
for the missing yy* stuff.  :?

For now it won't hurt VLC & MPlayer etc to
not have AACS support, of course
(and me not having any store-bought BDs either <lol>).

I guess I want to help work on this because of what
Steve Jobs says about talking the *AA nuts into
ditching any DRM whatsoever[1], which is why Macs
don't have any official BD support at all, IMO.
[1] as if he can move mountains on this planet.  ;D
I suppose I'd like to prove how open-src can
'solve' this particular dilemma.
We need proper APIs for all this, too,
since Apple stays so secret in meantime.

Thanks for putting up with me.


-----BEGIN PGP SIGNATURE-----
Charset: UTF8
Version: Hush 3.0
Note: This signature can be verified at https://www.hushtools.com/verify

wkYEARECAAYFAkxXxNEACgkQZbt5KOxKrtRxkQCdH+OhczBFubavUV6NfI6ow4NsJNMA
nA4sK/OxzAh9GY/Bui/mzzVIZSmM
=UgT2
-----END PGP SIGNATURE-----



More information about the libbluray-devel mailing list