This makes sense to me, any differing opinions?

I would add a comment explaining what it's for, just something like
<< # avoid "libmtp.so.7.0: undefined reference to `.L2085'" >>


On 2017/07/03 12:38, Donovan Watteau wrote:
> Hi,
> 
> This one is a bit weird.
> 
> There's a really strange linking error while trying to build devel/libmtp,
> and it looks like it's only happening on mips64el.
> 
> ===>  Building for libmtp-1.1.13
> make  all-recursive
> Making all in src
> Making all in examples
> cc -DHAVE_CONFIG_H -I. -I..  -I../src  -I/usr/local/include  -O2 -pipe -Wall 
> -Wmissing-prototypes -MT detect.o -MD -MP -MF .deps/detect.Tpo -c -o detect.o 
> detect.c
> mv -f .deps/detect.Tpo .deps/detect.Po
> /usr/bin/libtool  --tag=CC    --mode=link cc  -O2 -pipe -Wall 
> -Wmissing-prototypes   -L/usr/local/lib -o mtp-detect detect.o util.o 
> ../src/libmtp.la -lgcrypt 
> libtool: link: cc -o .libs/mtp-detect -pthread -O2 -pipe -Wall 
> -Wmissing-prototypes detect.o util.o -L.libs -lmtp -liconv -lusb-1.0 -lgcrypt 
> -lgpg-error -lintl -Wl,-rpath-link,/usr/local/lib
> .libs/libgcrypt.so.19.3: warning: warning: stpcpy() is dangerous; do not use 
> it
> .libs/libmtp.so.7.0: warning: warning: rand() may return deterministic 
> values, is that what you want?
> .libs/libmtp.so.7.0: warning: warning: strcat() is almost always misused, 
> please use strlcat()
> .libs/libmtp.so.7.0: warning: warning: sprintf() is often misused, please use 
> snprintf()
> .libs/libmtp.so.7.0: warning: warning: strcpy() is almost always misused, 
> please use strlcpy()
> .libs/libmtp.so.7.0: undefined reference to `.L2085'
> collect2: ld returned 1 exit status
> Error while executing cc -o .libs/mtp-detect -pthread -O2 -pipe -Wall 
> -Wmissing-prototypes detect.o util.o -L.libs -lmtp -liconv -lusb-1.0 -lgcrypt 
> -lgpg-error -lintl -Wl,-rpath-link,/usr/local/lib
> *** Error 25 in examples (Makefile:511 'mtp-detect')
> *** Error 1 in . (Makefile:551 'all-recursive')
> *** Error 1 in /usr/ports/pobj/libmtp-1.1.13/libmtp-1.1.13 (Makefile:389 
> 'all')
> *** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2695 
> '/usr/ports/pobj/libmtp-1.1.13/.build_done')
> *** Error 1 in /usr/ports/devel/libmtp 
> (/usr/ports/infrastructure/mk/bsd.port.mk:2398 'all')
> 
> Using MODGCC4 works around this.  I suspect a small bug in base toolchain,
> but strangely, mips64 doesn't look affected as I see a package for it, so
> mips64el might be the only arch having this issue... (and this build error
> has existed for some months).
> 
> I have no idea how to investigate this, and it doesn't look like a common
> problem on mips64el, so using MODGCC4 feels like an acceptable workaround,
> IMO.
> 
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/devel/libmtp/Makefile,v
> retrieving revision 1.35
> diff -u -p -r1.35 Makefile
> --- Makefile  30 May 2017 20:48:04 -0000      1.35
> +++ Makefile  3 Jul 2017 10:26:57 -0000
> @@ -16,6 +16,9 @@ WANTLIB += c gcrypt gpg-error iconv intl
>  
>  MASTER_SITES=                ${MASTER_SITE_SOURCEFORGE:=libmtp/}
>  
> +MODULES+=            gcc4
> +MODGCC4_ARCHS=               mips64el
> +
>  LIB_DEPENDS=         devel/libusb1 \
>                       security/libgcrypt
>  
> 

Reply via email to