tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

xine-lib vs. new binutils



When compiling multimedia/xine-lib on NetBSD-current, it fails with

  CCLD     libxine.la
ld: .libs/xine.o: relocation R_X86_64_PC32 against protected symbol `_x_flags' can not be used when making a shared object
ld: final link failed: Bad value

The variable occurs only here:

./work/xine-lib-1.2.6/include/xine/xine_internal.h:extern int _x_flags XINE_PROTECTED;
./work/xine-lib-1.2.6/src/xine-engine/xine.c:int _x_flags = 0;
./work/xine-lib-1.2.6/src/xine-engine/xine.c:  _x_flags = flags;
./work/xine-lib-1.2.6/src/xine-engine/load_plugins.c:  if ((_x_flags & XINE_FLAG_NO_WRITE_CACHE) == 0)

and XINE_PROTECTED is defined this way:

#if defined(XINE_LIBRARY_COMPILE) && defined(SUPPORT_ATTRIBUTE_VISIBILITY_PROTECTED)
# define XINE_PROTECTED __attribute__((__visibility__("protected")))
#elif defined(XINE_LIBRARY_COMPILE) && defined(SUPPORT_ATTRIBUTE_VISIBILITY_DEFAULT)
# define XINE_PROTECTED __attribute__((__visibility__("default")))
#else
# define XINE_PROTECTED
#endif

What does the error mean?
How can I fix it?

When I just remove XINE_PROTECTED from the variable, the builds fails
similarly with a different symbol:

ld: .libs/load_plugins.o: relocation R_X86_64_PC32 against protected symbol `xine_fast_memcpy' can not be used when making a shared object

Cheers,
 Thomas


Home | Main Index | Thread Index | Old Index