#72 Doesn't build on Solaris 10 or OpenSolaris

v1.0 (example)
closed-postponed
nobody
3
2013-12-17
2010-08-06
Mark
No

I'm building on Solaris 10, i86pc and SPARC, and OpenSolaris i86pc. All fail with the same linking problem as described in other bugs here.

/bin/bash ../libtool --tag=CC --mode=link cc -xtarget=ultra -m64 -xcode=pic32 -g -v -Xc -o check_check_export check_check_export-check_check_sub.o check_check_export-check_check_master.o check_check_export-check_check_log.o check_check_export-check_check_fork.o check_check_export-check_check_export_main.o ../src/libcheck.la ../lib/libcompat.la
libtool: link: cc -xtarget=ultra -m64 -xcode=pic32 -g -v -Xc -o .libs/check_check_export check_check_export-check_check_sub.o check_check_export-check_check_master.o check_check_export-check_check_log.o check_check_export-check_check_fork.o check_check_export-check_check_export_main.o ../src/.libs/libcheck.so -lpthread ../lib/.libs/libcompat.a -R/libcheck/lib
Undefined first referenced
symbol in file
_fail_unless check_check_export-check_check_sub.o
_mark_point check_check_export-check_check_sub.o
srunner_ntests_run check_check_export-check_check_master.o
tcase_set_timeout check_check_export-check_check_sub.o
tcase_create check_check_export-check_check_sub.o
suite_create check_check_export-check_check_sub.o
srunner_failures check_check_export-check_check_master.o
srunner_has_xml check_check_export-check_check_log.o
srunner_has_log check_check_export-check_check_log.o
_tcase_add_test check_check_export-check_check_sub.o
srunner_results check_check_export-check_check_master.o
srunner_set_xml check_check_export-check_check_log.o
srunner_set_log check_check_export-check_check_log.o
srunner_run_all check_check_export-check_check_sub.o
check_waitpid_and_exit check_check_export-check_check_sub.o
tcase_add_unchecked_fixture check_check_export-check_check_master.o
tr_tcname check_check_export-check_check_master.o
srunner_xml_fname check_check_export-check_check_log.o
tr_lno check_check_export-check_check_master.o
tr_msg check_check_export-check_check_master.o
srunner_set_fork_status check_check_export-check_check_fork.o
tr_lfile check_check_export-check_check_master.o
tr_rtype check_check_export-check_check_master.o
srunner_fork_status check_check_export-check_check_fork.o
srunner_log_fname check_check_export-check_check_log.o
check_fork check_check_export-check_check_sub.o
suite_add_tcase check_check_export-check_check_sub.o
tcase_fn_start check_check_export-check_check_sub.o
srunner_free check_check_export-check_check_sub.o
srunner_ntests_failed check_check_export-check_check_master.o
srunner_create check_check_export-check_check_sub.o
srunner_add_suite check_check_export-check_check_sub.o
ld: fatal: Symbol referencing errors. No output written to .libs/check_check_export
gmake[2]: *** [check_check_export] Error 1
gmake[2]: Leaving directory `/var/tmp/check-0.9.8/tests'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/var/tmp/check-0.9.8'
gmake: *** [all] Error 2

Related

Bugs: #72

Discussion

  • Mark
    Mark
    2010-08-06

    It should be noted that this is the tests failing, a 'gmake install' will install these files:

    /usr/local/include
    /usr/local/include/check.h
    /usr/local/share
    /usr/local/share/aclocal
    /usr/local/share/aclocal/check.m4
    /usr/local/share/info
    /usr/local/share/info/check.info
    /usr/local/share/info/dir
    /usr/local/share/doc
    /usr/local/share/doc/check
    /usr/local/share/doc/check/README
    /usr/local/share/doc/check/COPYING.LESSER
    /usr/local/share/doc/check/NEWS
    /usr/local/share/doc/check/ChangeLogOld
    /usr/local/share/doc/check/SVNChangeLog
    /usr/local/share/doc/check/ChangeLog
    /usr/local/share/doc/check/example
    /usr/local/share/doc/check/example/README
    /usr/local/share/doc/check/example/Makefile.am
    /usr/local/share/doc/check/example/src
    /usr/local/share/doc/check/example/src/money.h
    /usr/local/share/doc/check/example/src/money.3.c
    /usr/local/share/doc/check/example/src/money.1.c
    /usr/local/share/doc/check/example/src/money.4.c
    /usr/local/share/doc/check/example/src/money.2.h
    /usr/local/share/doc/check/example/src/Makefile.am
    /usr/local/share/doc/check/example/src/money.5.c
    /usr/local/share/doc/check/example/src/money.c
    /usr/local/share/doc/check/example/src/main.c
    /usr/local/share/doc/check/example/src/money.1.h
    /usr/local/share/doc/check/example/src/money.6.c
    /usr/local/share/doc/check/example/tests
    /usr/local/share/doc/check/example/tests/Makefile.am
    /usr/local/share/doc/check/example/tests/check_money.7.c
    /usr/local/share/doc/check/example/tests/check_money.6.c
    /usr/local/share/doc/check/example/tests/check_money.c
    /usr/local/share/doc/check/example/tests/check_money.2.c
    /usr/local/share/doc/check/example/tests/check_money.3.c
    /usr/local/share/doc/check/example/tests/check_money.1.c
    /usr/local/share/doc/check/example/configure.ac
    /usr/local/lib
    /usr/local/lib/libcheck.so.0.0.0
    /usr/local/lib/libcheck.so
    /usr/local/lib/libcheck.la
    /usr/local/lib/libcheck.so.0
    /usr/local/lib/libcheck.a
    /usr/local/lib/pkgconfig
    /usr/local/lib/pkgconfig/check.pc

     
    • priority: 5 --> 3
     
  • Tim Mooney
    Tim Mooney
    2012-01-11

    I'm not seeing this issue on x86_64-sun-solaris2.10 (that's 10u6, not OpenSolaris) when building with the Oracle Studio 12.2 compiler toolchain. There were a couple of very minor issues with the build, but overall no problems.

     
  • Mark
    Mark
    2013-05-22

    It compiles on Solaris 11 x86, but not on Solaris 10 x86 Update 8 or SPARC Update 10. All using Studio 12.3. It's a problem with the sed command used to build the exported symbol list.

    sol10:/var/tmp/check-0.9.10/src root# cat exported.sym
    sol10:/var/tmp/check-0.9.10/src root#

    sol11:/var/tmp/check-0.9.10/src root# cat exported.sym
    check_major_version
    check_minor_version
    check_micro_version
    [...]
    srunner_set_fork_status
    check_fork
    check_waitpid_and_exit
    sol11:/var/tmp/check-0.9.10/src root#

    This is built from:
    sol10:/var/tmp/check-0.9.10/src root# sed -n -e 's/^..CK_EXPORT[[:space:]][[:space:]]([[:alnum:]][[:alnum:]])..$/\1/p' ../src/check.h.in
    sol10:/var/tmp/check-0.9.10/src root#

    sol11:/var/tmp/check-0.9.10/src root# sed -n -e 's/^..CK_EXPORT[[:space:]][[:space:]]([[:alnum:]][[:alnum:]])..$/\1/p' ../src/check.h.in
    check_major_version
    check_minor_version
    check_micro_version
    [...]
    srunner_set_fork_status
    check_fork
    check_waitpid_and_exit
    sol11:/var/tmp/check-0.9.10/src root#

    A more portable means of generating it:
    sol10:/var/tmp/check-0.9.10 root# grep CK_EXPORT src/check.h.in | perl -pe 's/.CK_EXPORT\s+//' | perl -pe 's/((|\s+|\;).//'
    check_major_version
    check_minor_version
    check_micro_version
    [...]
    srunner_set_fork_status
    check_fork
    check_waitpid_and_exit
    sol10:/var/tmp/check-0.9.10 root#

    This cut-and-paste recipe will build it now:

    cd /var/tmp
    rm -rf check-0.9.10
    untgz /usr/local/src/utils/check-0.9.10.tar.gz
    cd check-0.9.10
    /bin/perl -pe "s%sed -n -e.*check.h.in%cat \@top_srcdir\@/src/check.h.in | grep CK_EXPORT | perl -pe 's/.*CK_EXPORT\\s+//' | perl -pe 's/(\\(|\\s+|\\;).*//'%" -i src/Makefile.in
    ./configure --prefix=/usr/local
    gmake
    gmake install
    
     
  • Mark
    Mark
    2013-05-22

    The recipe looks ok, the commentary above it had '*' characters mangled out... #wikifail

     
  • Chris Pickett
    Chris Pickett
    2013-05-22

    sed is POSIX, perl isn't, so I'd prefer to keep sed. Should work if you
    install GNU sed, but really there should be a way to do it with the
    actual Solaris sed. Chris

    Mark wrote:

    The recipe looks ok, the commentary above it had '*' characters mangled out... #wikifail


    [bugs:#72] Doesn't build on Solaris 10 or OpenSolaris

    Status: open
    Labels: Core Functionality
    Created: Fri Aug 06, 2010 02:27 AM UTC by Mark
    Last Updated: Wed May 22, 2013 03:06 AM UTC
    Owner: Arien Malec

    I'm building on Solaris 10, i86pc and SPARC, and OpenSolaris i86pc. All fail with the same linking problem as described in other bugs here.

    /bin/bash ../libtool --tag=CC --mode=link cc -xtarget=ultra -m64 -xcode=pic32 -g -v -Xc -o check_check_export check_check_export-check_check_sub.o check_check_export-check_check_master.o check_check_export-check_check_log.o check_check_export-check_check_fork.o check_check_export-check_check_export_main.o ../src/libcheck.la ../lib/libcompat.la
    libtool: link: cc -xtarget=ultra -m64 -xcode=pic32 -g -v -Xc -o .libs/check_check_export check_check_export-check_check_sub.o check_check_export-check_check_master.o check_check_export-check_check_log.o check_check_export-check_check_fork.o check_check_export-check_check_export_main.o ../src/.libs/libcheck.so -lpthread ../lib/.libs/libcompat.a -R/libcheck/lib
    Undefined first referenced
    symbol in file
    _fail_unless check_check_export-check_check_sub.o
    _mark_point check_check_export-check_check_sub.o
    srunner_ntests_run check_check_export-check_check_master.o
    tcase_set_timeout check_check_export-check_check_sub.o
    tcase_create check_check_export-check_check_sub.o
    suite_create check_check_export-check_check_sub.o
    srunner_failures check_check_export-check_check_master.o
    srunner_has_xml check_check_export-check_check_log.o
    srunner_has_log check_check_export-check_check_log.o
    _tcase_add_test check_check_export-check_check_sub.o
    srunner_results check_check_export-check_check_master.o
    srunner_set_xml check_check_export-check_check_log.o
    srunner_set_log check_check_export-check_check_log.o
    srunner_run_all check_check_export-check_check_sub.o
    check_waitpid_and_exit check_check_export-check_check_sub.o
    tcase_add_unchecked_fixture check_check_export-check_check_master.o
    tr_tcname check_check_export-check_check_master.o
    srunner_xml_fname check_check_export-check_check_log.o
    tr_lno check_check_export-check_check_master.o
    tr_msg check_check_export-check_check_master.o
    srunner_set_fork_status check_check_export-check_check_fork.o
    tr_lfile check_check_export-check_check_master.o
    tr_rtype check_check_export-check_check_master.o
    srunner_fork_status check_check_export-check_check_fork.o
    srunner_log_fname check_check_export-check_check_log.o
    check_fork check_check_export-check_check_sub.o
    suite_add_tcase check_check_export-check_check_sub.o
    tcase_fn_start check_check_export-check_check_sub.o
    srunner_free check_check_export-check_check_sub.o
    srunner_ntests_failed check_check_export-check_check_master.o
    srunner_create check_check_export-check_check_sub.o
    srunner_add_suite check_check_export-check_check_sub.o
    ld: fatal: Symbol referencing errors. No output written to .libs/check_check_export
    gmake[2]: *** [check_check_export] Error 1
    gmake[2]: Leaving directory `/var/tmp/check-0.9.8/tests'
    gmake[1]: *** [all-recursive] Error 1
    gmake[1]: Leaving directory `/var/tmp/check-0.9.8'
    gmake: *** [all] Error 2


    Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/check/bugs/72/

    To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

     

    Related

    Bugs: #72

  • Mark
    Mark
    2013-05-22

    sed is POSIX, perl isn't, so I'd prefer to keep sed. Should work if you
    install GNU sed, but really there should be a way to do it with the
    actual Solaris sed. Chris

    Yep, I guess. I'd suggest breaking it down to simpler steps and avoiding :space: type stuff in the regexps, that's "new". Or just ship the exported.sym file in the distribution, you know the function names. The KISS principle.

     
  • Branden Archer
    Branden Archer
    2013-12-17

    From Mark's comment, it sounds like this is out of the scope for Check to tackle (unless someone feels otherwise), and the issue is already resolved for more recent versions of Solaris.

    If there is futher work to do on Check's side, please let us know, and suggest a fix that we could apply.

     
  • Branden Archer
    Branden Archer
    2013-12-17

    • status: open --> closed-postponed
    • assigned_to: Arien Malec --> nobody
    • Group: --> v1.0 (example)