[graphics/libcdr] Boost issue breaks build?

Don Lewis truckman at FreeBSD.org
Wed Mar 12 20:23:47 UTC 2014

On 12 Mar, A.J. 'Fonz' van Werven wrote:
> Richard M. Timoney wrote:
>> Adding this to /etc/make.conf seems to work
>> .if !empty(.CURDIR:M/usr/ports/graphics/libcdr) && exists(/usr/local/bin/gcc47)
>> CC=gcc47
>> CXX=g++47
>> CPP=cpp47
>> .endif
> Thanks for the suggestion. Unfortunately, I can't even build GCC itself:
> [snip]
> if [ x"-fpic" != x ]; then \
>   cc -c -DHAVE_CONFIG_H -g -fkeep-inline-functions  -I. -I.././../gcc-4.7-20140222/libiberty/../include  -W -Wall -Wwrite-strings -Wc++-compat -Wstrict-prototyp
> es -pedantic  -fpic .././../gcc-4.7-20140222/libiberty/strverscmp.c -o pic/strverscmp.o; \
> else true; fi
> cc -c -DHAVE_CONFIG_H -g -fkeep-inline-functions  -I. -I.././../gcc-4.7-20140222/libiberty/../include  -W -Wall -Wwrite-strings -Wc++-compat -Wstrict-prototypes
>  -pedantic  .././../gcc-4.7-20140222/libiberty/strverscmp.c -o strverscmp.o
> rm -f ./libiberty.a pic/./libiberty.a
> /usr/local/bin/ar rc ./libiberty.a \
>   ./regex.o ./cplus-dem.o ./cp-demangle.o ./md5.o ./sha1.o ./alloca.o ./argv.o ./choose-temp.o ./concat.o ./cp-demint.o ./crc32.o ./dyn-string.o ./fdmatch.o ./f
> ibheap.o ./filename_cmp.o ./floatformat.o ./fnmatch.o ./fopen_unlocked.o ./getopt.o ./getopt1.o ./getpwd.o ./getruntime.o ./hashtab.o ./hex.o ./lbasename.o ./lr
> ealpath.o ./make-relative-prefix.o ./make-temp-file.o ./objalloc.o ./obstack.o ./partition.o ./pexecute.o ./physmem.o ./pex-common.o ./pex-one.o ./pex-unix.o ./
> safe-ctype.o ./simple-object.o ./simple-object-coff.o ./simple-object-elf.o ./simple-object-mach-o.o ./sort.o ./spaces.o ./splay-tree.o ./stack-limit.o ./strerr
> or.o ./strsignal.o ./timeval-utils.o ./unlink-if-ordinary.o ./xatexit.o ./xexit.o ./xmalloc.o ./xmemdup.o ./xstrdup.o ./xstrerror.o ./xstrndup.o  ./mempcpy.o ./
> strverscmp.o
> Shared object "libfl.so.2" not found, required by "ar"
> gmake[3]: *** [libiberty.a] Error 1
> gmake[3]: Leaving directory `/usr/ports/lang/gcc47/work/build/libiberty'
> gmake[2]: *** [all-stage1-libiberty] Error 2
> gmake[2]: Leaving directory `/usr/ports/lang/gcc47/work/build'
> gmake[1]: *** [stage1-bubble] Error 2
> gmake[1]: Leaving directory `/usr/ports/lang/gcc47/work/build'
> gmake: *** [bootstrap-lean] Error 2
> *** [do-build] Error code 1
> Stop in /usr/ports/lang/gcc47.
> *** [build] Error code 1
> [snip]
> This happens with lang/gcc, lang/gcc47 and lang/gcc49, on a FreeBSD
> 9.2-RELEASE-p3/amd64 system with up-to-date ports tree. Switching between
> (the base system's) GCC and Clang makes no difference either.

Looks like ar from devel/binutils is broken on your machine.  On my most
recently updated machine:

%ldd /usr/local/bin/ar
	libfl.so.2 => /usr/local/lib/compat/pkg/libfl.so.2 (0x8810d000)
	libm.so.5 => /lib/libm.so.5 (0x8810f000)
	libz.so.6 => /lib/libz.so.6 (0x88137000)
	libc.so.7 => /lib/libc.so.7 (0x8814c000)

That doesn't look good ...

At first I suspected that libfl.so might have had a version bump, but
there's no other shard library version under /usr/local/lib.  There is a
static library, libfl.a, installed by textproc/flex.  It turns out that
installation of shared libraries was disabled for that port by r345345
two weeks ago (PR: ports/186790).  There should have been a note in
ports/UPDATING notifying users to rebuild or reinstall all ports that
linked to the shared library.

What's interesting is that devel/binutils doesn't mention flex as a

In any case, rebuilding and reinstalling devel/binutils should get you
to the point where you can build lang/gcc47.

More information about the freebsd-ports mailing list