Control: tags -1 +patch
Le vendredi, 29 juillet 2016, 08.48:47 h CEST Lucas Nussbaum a écrit :
> During a rebuild of all packages in sid, your package failed to build on
> amd64.
>
> Relevant part (hopefully):
> > ./base/sjpx_openjpeg.c:249: undefined
> > reference to `opj_decode' /usr/bin/ld: ./sobin/libgs.so.9.19: hidden
> > symbol `opj_setup_decoder' isn't defined /usr/bin/ld: final link failed:
I've now spent quite some time investigating this and finally found the
problem: libopenjp2-7-dev (>= 2.1.1) has changed it's
/usr/include/openjpeg-2.1/openjpeg.h
to include the following lines:
#if defined(OPJ_STATIC) || !defined(_WIN32)
/* http://gcc.gnu.org/wiki/Visibility */
# if __GNUC__ >= 4
# if defined(OPJ_STATIC) /* static library uses "hidden" */
# define OPJ_API __attribute__ ((visibility ("hidden")))
# else
# define OPJ_API __attribute__ ((visibility ("default")))
# endif
This makes all API symbols hidden if '-DOPJ_STATIC' is passed to GCC; as
it happens to be passed in base/lib.mak :
$(GLOBJ)sjpx_openjpeg.$(OBJ) : $(GLSRC)sjpx_openjpeg.c $(AK) \
$(memory__h) $(gserror_h) $(gserrors_h) \
$(gdebug_h) $(strimpl_h) $(sjpx_openjpeg_h) $(LIB_MAK) $(MAKEDIRS)
$(GLJPXOPJCC) $(GLO_)sjpx_openjpeg.$(OBJ) \
$(C_) -DOPJ_STATIC $(GLSRC)sjpx_openjpeg.c
Patching this -DOPJ_STATIC out fixes the FTBFS; patch attached.
Cheers,
--
OdyXDescrtiption: Don't pass -DOPJ_STATIC when compiling the OpenJPEG code, as it makes the symbols hidden when including /usr/include/openjpeg-2.1/openjpeg.h . Fixes a FTBFS against libopenjp2-7 (>= 2.1.1) Author: Didier Raboud <odyx@debian.org> Origin: vendor Bug-Debian: https://bugs.debian.org/832873 --- a/base/lib.mak +++ b/base/lib.mak @@ -1830,11 +1830,11 @@ $(GLOBJ)sjpx_openjpeg.$(OBJ) : $(GLSRC)sjpx_openjpeg.c $(AK) \ $(memory__h) $(gserror_h) $(gserrors_h) \ $(gdebug_h) $(strimpl_h) $(sjpx_openjpeg_h) $(LIB_MAK) $(MAKEDIRS) $(GLJPXOPJCC) $(GLO_)sjpx_openjpeg.$(OBJ) \ - $(C_) -DOPJ_STATIC $(GLSRC)sjpx_openjpeg.c + $(C_) $(GLSRC)sjpx_openjpeg.c # ---------------- Pixel-difference filters ---------------- # # The Predictor facility of the LZW and Flate filters uses these. pdiff_=$(GLOBJ)spdiff.$(OBJ)
Attachment:
signature.asc
Description: This is a digitally signed message part.