[cairo-bugs] [Bug 49669] 1.12.2 won't build on Solaris w/ Sun Studio cc. _cairo_unbounded_rectangle undefined symbol

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Aug 26 02:04:16 PDT 2013


https://bugs.freedesktop.org/show_bug.cgi?id=49669

--- Comment #4 from mark at ibiblio.org ---

Ignore the cairo_region and cairo_device symbol cut-and-paste above, I
neglected to pkgrm cairo 1.8.10 from the system first. Those libs were getting
picked up during the install phase.

This URL however says -xO2 does the dead code cleanup so I'm using that
instead.

http://docs.oracle.com/cd/E19205-01/819-5265/bjavm/index.html

The end status is -xO1/-xO2 will fix the issue and finish the compile on
Solaris 10 & 11 Intel, but not Solaris 10 SPARC. `make check' passes most
things on Solaris Intel except where GNU grep is assumed.

Digging into it:

/bin/bash ../libtool  --tag=CC   --mode=link cc -xtarget=ultra -m64
-xcode=pic32 -xc99 -xO2  -L/usr/local/lib -I/usr/local/include
-D_POSIX_PTHREAD_SEMANTICS   -o libcairoperf.la  cairo-perf.lo
cairo-perf-report.lo cairo-stats.lo cairo-time.lo   -lrt  -lm
libtool: link: ar cru .libs/libcairoperf.a .libs/cairo-perf.o
.libs/cairo-perf-report.o .libs/cairo-stats.o .libs/cairo-time.o 
libtool: link: ranlib .libs/libcairoperf.a
libtool: link: ( cd ".libs" && rm -f "libcairoperf.la" && ln -s
"../libcairoperf.la" "libcairoperf.la" )
/bin/bash ../libtool  --tag=CC   --mode=link cc -xtarget=ultra -m64
-xcode=pic32 -xc99 -xO2  -L/usr/local/lib -I/usr/local/include
-D_POSIX_PTHREAD_SEMANTICS   -o cairo-analyse-trace cairo-analyse-trace.o
cairo-error.o ../util/cairo-script/libcairo-script-interpreter.la
../util/cairo-missing/libcairo-missing.la libcairoperf.la
../boilerplate/libcairoboilerplate.la ../src/libcairo.la -lrt  -lm
libtool: link: cc -xtarget=ultra -m64 -xcode=pic32 -xc99 -xO2
-I/usr/local/include -D_POSIX_PTHREAD_SEMANTICS -o .libs/cairo-analyse-trace
cairo-analyse-trace.o cairo-error.o  -L/usr/local/lib
../util/cairo-script/.libs/libcairo-script-interpreter.so
../util/cairo-missing/.libs/libcairo-missing.a ./.libs/libcairoperf.a
../boilerplate/.libs/libcairoboilerplate.a
/var/tmp/cairo-1.12.14/src/.libs/libcairo.so -ldl ../src/.libs/libcairo.so
/usr/local/lib/libpixman-1.so /usr/local/lib/libfontconfig.so -lbz2
/usr/local/lib/libexpat.so /usr/local/lib/libintl.so -lc
/usr/local/lib/libiconv.so /usr/local/lib/libfreetype.so
/usr/local/lib/libpng16.so -lcurses /usr/local/lib/libxcb-shm.so
/usr/local/lib/libX11-xcb.so /usr/local/lib/libxcb-render.so
/usr/local/lib/libXrender.so /usr/local/lib/libXext.so /usr/local/lib/libX11.so
/usr/local/lib/libxcb.so /usr/local/lib/libXau.so /usr/local/lib/libXdmcp.so
-lnsl -lsocket -lz -lrt -lm -R/cairo/lib -R/usr/local/lib
ld: warning: file ../src/.libs/libcairo.so: linked to
/var/tmp/cairo-1.12.14/src/.libs/libcairo.so: attempted multiple inclusion of
file
Undefined                       first referenced
 symbol                             in file
_cairo_unbounded_rectangle          cairo-error.o  (symbol scope specifies
local binding)
ld: fatal: symbol referencing errors. No output written to
.libs/cairo-analyse-trace
gmake[4]: *** [cairo-analyse-trace] Error 2
gmake[4]: Leaving directory `/var/tmp/cairo-1.12.14/perf'
gmake[3]: *** [all-recursive] Error 1
gmake[3]: Leaving directory `/var/tmp/cairo-1.12.14/perf'
gmake[2]: *** [all] Error 2
gmake[2]: Leaving directory `/var/tmp/cairo-1.12.14/perf'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/var/tmp/cairo-1.12.14'
gmake: *** [all] Error 2


perf/.libs/libcairoperf.a[cairo-time.o]: [88]   |                   0|         
        16|OBJT |GLOB |2    |UNDEF  |_cairo_unbounded_rectangle

./src/.libs/libcairo.a[cairo-rectangle.o]: [78] |                  20|         
        16|OBJT |GLOB |2    |3      |_cairo_unbounded_rectangle

Putting /var/tmp/cairo-1.12.14/src/.libs/libcairo.a in the command above gives
a functional linking.

This recipe now compiles everything:

    cd /var/tmp
    rm -rf cairo-1.12.14
    unxz -c /usr/local/src/graphics/cairo-1.12.14.tar.xz | tar -xvf -
    cd cairo-1.12.14
    ./configure --prefix=/usr/local \
        --enable-xml \
        --enable-xlib-xcb \
        --disable-silent-rules \
        --with-x
    gmake
    perl -pe "s#dependency_libs=\'#dependency_libs=\'../src/.libs/libcairo.a #"
-i perf/libcairoperf.la
    gmake install

The dependency_lib mod above also removes the need for the -xO1/-xO2 compiler
flag.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cairographics.org/archives/cairo-bugs/attachments/20130826/79a03e27/attachment.html>


More information about the cairo-bugs mailing list