Opened 8 years ago

Closed 7 years ago

Last modified 7 years ago

#12963 closed defect (fixed)

PolyBoRi links against system -lboost_unit_test_framework

Reported by: jdemeyer Owned by: tbd
Priority: blocker Milestone: sage-5.0.1
Component: packages: standard Keywords:
Cc: AlexanderDreyer Merged in: sage-5.0.1.rc0
Authors: Jeroen Demeyer Reviewers: Alexander Dreyer
Report Upstream: Fixed upstream, in a later stable release. Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description (last modified by jdemeyer)

As noted on sage-support, the sage-5.0 binary sage-5.0-linux-32bit-fedora_release_16_verne_-i686-Linux.tar.gz requires the boost library libboost_unit_test_framework at runtime, since the binary was built on a machine with that library available. PolyBoRi? checks for -lboost_unit_test_framework and links against it if available.

This is because of the PolyBoRi? upgrade to version 0.8.1. The older PolyBoRi? in sage-4.8 did not do this.

There are two solutions:

  1. Fix PolyBoRi? not to link against -lboost_unit_test_framework when SAGE_FAT_BINARY=yes.
  2. Add the boost library to Sage (currently, only the boost headers are installed).

The following spkg implements the first solution: http://boxen.math.washington.edu/home/jdemeyer/spkg/polybori-0.8.1.p2.spkg

Binaries for testing: http://boxen.math.washington.edu/home/buildbot/binaries/sage/5.0.1.rc0/

Attachments (1)

polybori-0.8.1.p2.diff (6.3 KB) - added by jdemeyer 8 years ago.
Diff for the polybori spkg. For review only

Download all attachments as: .zip

Change History (19)

comment:1 Changed 8 years ago by jdemeyer

  • Description modified (diff)

comment:2 Changed 8 years ago by vbraun

I'd be in favor of adding the missing bits of boost. Its a great library and we should make more use of it if anything.

comment:3 Changed 8 years ago by jdemeyer

The full boost package is close to 50 MB in size. So I can imagine some people being unhappy about this.

comment:4 Changed 8 years ago by jdemeyer

  • Authors set to Jeroen Demeyer
  • Description modified (diff)
  • Milestone changed from sage-5.1 to sage-5.0.1

Changed 8 years ago by jdemeyer

Diff for the polybori spkg. For review only

comment:5 Changed 8 years ago by jdemeyer

  • Status changed from new to needs_review

comment:6 Changed 8 years ago by jdemeyer

  • Description modified (diff)

comment:7 Changed 8 years ago by AlexanderDreyer

  • Cc AlexanderDreyer added
  • Report Upstream changed from N/A to Fixed upstream, in a later stable release.
  • Reviewers set to Alexander Dreyer

The diff looks sane. If it installs and tests well, I'll give a positive review soon. Note that upcoming PolyBoRi 0.8.2 will only links the tests to boost_test. Since test executable are not installed, the problem should not persist then.

comment:8 Changed 8 years ago by AlexanderDreyer

  • Status changed from needs_review to positive_review

make ptestlong succeeded, so positive review.

comment:9 Changed 7 years ago by ppurka

My system boost library got upgraded (1.46 -> 1.48), and then polybori broke.

Irrespective of however many times I recompiled polybori, ldd showed that libpolybori-0.8.1.so.0.0.0 was still linked agaist libboost_unit_test_framework-1_46*. Installing this spkg works, and now libpolybori-0.8.1.so.0.0.0 is linked against the new boost.

comment:10 follow-up: Changed 7 years ago by jdemeyer

The new spkg here only changes things for binary versions of Sage (i.e. when SAGE_FAT_BINARY=yes). If you're using Sage on your own computer, not intending to distribute it, I don't think it's a problem that the system Boost library gets linked.

comment:11 in reply to: ↑ 10 Changed 7 years ago by ppurka

Replying to jdemeyer:

The new spkg here only changes things for binary versions of Sage (i.e. when SAGE_FAT_BINARY=yes). If you're using Sage on your own computer, not intending to distribute it, I don't think it's a problem that the system Boost library gets linked.

Well, the point is that this spkg works while the one already present doesn't. I recompiled polybori several times, and I have no idea how it kept on relinking against boost-1.46 when it is not even present in my system. Using this spkg actually did the right thing and linked it against the installed boost-1.48.

comment:12 Changed 7 years ago by kini

This SPKG gives weird linker errors (as in, ld quits with nonzero exit status) on my multiarch Debian system. Here's a diff of my build log for p1 and p3 (#13040): http://wstein.org/home/keshav/files/polybori-log.diff.xz

comment:13 Changed 7 years ago by AlexanderDreyer

I'm not sure, but I would suspect, that the error were introduced by p3. Do the ld errors occur in with p2?

comment:14 follow-up: Changed 7 years ago by kini

Huh, you're right. Weird...

Diff between output for p1 and p2: http://wstein.org/home/keshav/files/polybori-log.2.diff.xz

comment:15 in reply to: ↑ 14 Changed 7 years ago by AlexanderDreyer

Replying to kini:

Huh, you're right. Weird...

Diff between output for p1 and p2: http://wstein.org/home/keshav/files/polybori-log.2.diff.xz

Looking closer, the linker errors were intended, but they should be suppressed of course. Unfortunately, the patch from #13040 reverted this. I have suggested an alternative patch there.Looking closer, the linker errory were intended, but they should be suppressed of course. Unfortunately, the patch from #13040 reverted this. I have suggested an alternative patch there.

comment:16 Changed 7 years ago by AlexanderDreyer

(Sorry for doublets.)

comment:17 Changed 7 years ago by jdemeyer

  • Merged in set to sage-5.0.1
  • Resolution set to fixed
  • Status changed from positive_review to closed

comment:18 Changed 7 years ago by jdemeyer

  • Merged in changed from sage-5.0.1 to sage-5.0.1.rc0
Note: See TracTickets for help on using tickets.