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
>
>