//lib/libm.so.5: could not read symbols: Bad value and /usr/bin/ld: : invalid DSO for symbol `sin@@FBSD_1.0' definition

Mark Millard markmi at dsl-only.net
Tue Sep 23 22:53:40 UTC 2014


For 10.1-BETA2 I used the MANIFEST and *.txz files with bsdinstall to make a powerpc/GENERIC SSD where I did not rebuild the world or kernel but did attempt portmaster my usual ports. No WITH_DEBUG= or other such added. But WRKDIRPREFIX=(path not listed here) present.

It still got the:

/usr/bin/ld: : invalid DSO for symbol `sin@@FBSD_1.0' definition
//lib/libm.so.5: could not read symbols: Bad value
*** [fractals] Error code 1

So even the standard way of building distributions has the problem for powerpc/powerpc64.


uname -a output:

FreeBSD FBSDG4S0 10.1-BETA2 FreeBSD 10.1-BETA2 #0 r271848: Fri Sep 19 03:54:33 UTC 2014     root at releng1.nyi.freebsd.org:/usr/obj/powerpc.powerpc/usr/src/sys/GENERIC  powerpc




It would appear that .../graphics/freeglut/work/freeglut-2.8.1/configure.ac generation of progs/demos/Fractals/Makefile via:

# Generate output.
AC_CONFIG_FILES([
        Makefile
        doc/Makefile
        include/GL/Makefile
        include/Makefile
        progs/Makefile
        progs/demos/CallbackMaker/Makefile
        progs/demos/Fractals/Makefile
        progs/demos/Fractals_random/Makefile
        progs/demos/Lorenz/Makefile
        progs/demos/Makefile
        progs/demos/One/Makefile
        progs/demos/shapes/Makefile
        progs/demos/smooth_opengl3/Makefile
        progs/demos/spaceball/Makefile
        progs/demos/subwin/Makefile
        src/Makefile
])
AC_OUTPUT

needs to not only have the produced progs/demos/Fractals/Makefile contain:

LIBM = -lm

(which it does) but to put LIBM to use by effectively adding $(LIBM) to:

LIBS = -lXi -lXrandr -lXxf86vm 

or some other way of having -lm show up in the link command. (Other things may need similar -l<?>'s.)

If true then the problem is not in/with libm.so.5 itself.


My guess is that .../graphics/freeglut/work/freeglut-2.8.1/progs/demos/Fractals/Makefile.am should have:

fractals_LDADD = ../../../src/lib at LIBRARY@.la $(GL_LIBS) $(LIBM)

(I added the $(LIBM).)

If so it would appear that pre-configure: in /usr/ports/graphics/freeglut/Makefile might use something like:

        @${REINPLACE_CMD} -e "s|\$(GL_LIBS)|$(GL_LIBS) $(LIBM)|g" \
                ${WRKSRC}/progs/demos/Fractals/Makefile.am

(Again: There may be more than just Fractals and libm.so.5 involved overall.)

Or maybe a patch file for progs/demos/Fractals/Makefile.am could be set up.








===
Mark Millard
markmi at dsl-only.net

On Sep 18, 2014, at 12:02 AM, Mark Millard <markmi at dsl-only.net> wrote:

For 10.1-??? I've been getting:

/usr/bin/ld: : invalid DSO for symbol `sin@@FBSD_1.0' definition
//lib/libm.so.5: could not read symbols: Bad value
*** [fractals] Error code 1

make[6]: stopped in /usr/obj/portswork/usr/ports/graphics/freeglut/work/freeglut-2.8.1/progs/demos/Fractals

when I attempt to portmaster xscreensaver. (The rest of the ports I try to build work fine, including all their dependencies. If xscreensaver finished it would be about 409 ports involved in all.)

I now note it to the list because I've now tried on on powerpc/GENERIC and powerpc64/GENERIC64 with and without /etc/make.conf having:

WITH_DEBUG_FILES=
WITHOUT_CLANG=
WITH_DEBUG=

[WRKDIRPREFIX=(path not listed here) always present]

when I buildworld kernel and use portmaster for the ports.


It appears that no matter what style of build on a PowerMac under either powerpc/GENERIC or powerpc64/GENERIC64 /lib/libm.so.5 ends up with this problem (or the ld checks for invalid DSO's end up wrong  --or both).


I first noticed this with 10.1-PRERELEASE

FreeBSD FBSDG4S0 10.1-PRERELEASE FreeBSD 10.1-PRERELEASE #0 r271215: Sat Sep  6 23:56:15 PDT 2014     root at FBSDG4S0:/usr/obj/usr/src/sys/GENERIC  powerpc

I can not claim just what was the last prior working case I had with 10.0-STABLE but all those were "as distributed" installs instead of personal "buildworld kernel" based on a source updates. For 10.1-??? I've been experimenting with source based tracking/building, mostly building on Quad-core PowerMac G5s (booted with either GENERIC based or GENERIC64 based worlds/kernels, up to DDB/GDB being added or not). Here GENERIC and GENERIC64 were not updated at all.

It has continued with the likes of

FreeBSD FBSDG4S1 10.1-BETA1 FreeBSD 10.1-BETA1 #1 r271610M: Wed Sep 17 21:47:20 PDT 2014     root at FBSDG4S1:/usr/obj/usr/src/sys/GENERIC  powerpc

and its GENERIC64 variant. (M in r271610M because of DDB and GDB options added to GENERIC and GENERIC64.)


===
Mark Millard
markmi at dsl-only.net




More information about the freebsd-ppc mailing list