missing symlink for libboost_program_options.so

Bug #1776861 reported by Jeff Abrahamson
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
boost1.65.1 (Ubuntu)
New
Undecided
Unassigned

Bug Description

The package is missing a symlink, so the linker doesn't find the library without prodding.

╭╴ (master *%=)╶╮
╰ [bug.out] jeff@birdsong:src $ dpkg -L libboost-program-options1.65.1
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.65.1
/usr/share
/usr/share/doc
/usr/share/doc/libboost-program-options1.65.1
/usr/share/doc/libboost-program-options1.65.1/changelog.Debian.gz
/usr/share/doc/libboost-program-options1.65.1/copyright
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/libboost-program-options1.65.1
╭╴ (master *%=)╶╮
╰ [bug.out] jeff@birdsong:src $

Compiling against the library fails.

╭╴ (master *%=)╶╮
╰ jeff@birdsong:src $ g++ -ggdb3 -Wall -std=c++14 -o myname myname1.o ... mynameN.o -lprotobuf -lboost_program_options -lbz2 -lcrypto++
/usr/bin/x86_64-linux-gnu-ld: cannot find -lboost_program_options
collect2: error: ld returned 1 exit status
╭╴ (master *%=)╶╮
╰ 1, jeff@birdsong:src $

Running strace (under "script foo.out") thus:

strace -f g++ -ggdb3 -Wall -std=c++14 -o myname myname1.o ... mynameN.o -lboost_program_options -lOtherStdLibraries

shows that the linker is looking for only these paths in /usr/lib/x86_64-linux-gnu/:

╭╴ (master *%=)╶╮
╰ jeff@birdsong:src $ grep boost foo.out | grep /usr/lib/x86_64-linux-gnu
[pid 6715] stat("/usr/lib/x86_64-linux-gnu/libboost_program_options.so", 0x7ffcf5613f40) = -1 ENOENT (No such file or directory)
[pid 6715] openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libboost_program_options.so", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 6715] stat("/usr/lib/x86_64-linux-gnu/libboost_program_options.a", 0x7ffcf5613f90) = -1 ENOENT (No such file or directory)
[pid 6715] openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libboost_program_options.a", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 6715] stat("//usr/lib/x86_64-linux-gnu/libboost_program_options.so", 0x7ffcf5613f40) = -1 ENOENT (No such file or directory)
[pid 6715] openat(AT_FDCWD, "//usr/lib/x86_64-linux-gnu/libboost_program_options.so", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 6715] stat("//usr/lib/x86_64-linux-gnu/libboost_program_options.a", 0x7ffcf5613f90) = -1 ENOENT (No such file or directory)
[pid 6715] openat(AT_FDCWD, "//usr/lib/x86_64-linux-gnu/libboost_program_options.a", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 6715] stat("//usr/lib/x86_64-linux-gnu64/libboost_program_options.so", 0x7ffcf5613f40) = -1 ENOENT (No such file or directory)
[pid 6715] openat(AT_FDCWD, "//usr/lib/x86_64-linux-gnu64/libboost_program_options.so", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 6715] stat("//usr/lib/x86_64-linux-gnu64/libboost_program_options.a", 0x7ffcf5613f90) = -1 ENOENT (No such file or directory)
[pid 6715] openat(AT_FDCWD, "//usr/lib/x86_64-linux-gnu64/libboost_program_options.a", O_RDONLY) = -1 ENOENT (No such file or directory)
╭╴ (master *%=)╶╮
╰ jeff@birdsong:src $ grep boost foo.out | grep /usr/lib/x86_64-linux-gnu | grep -v gnu64
[pid 6715] stat("/usr/lib/x86_64-linux-gnu/libboost_program_options.so", 0x7ffcf5613f40) = -1 ENOENT (No such file or directory)
[pid 6715] openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libboost_program_options.so", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 6715] stat("/usr/lib/x86_64-linux-gnu/libboost_program_options.a", 0x7ffcf5613f90) = -1 ENOENT (No such file or directory)
[pid 6715] openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libboost_program_options.a", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 6715] stat("//usr/lib/x86_64-linux-gnu/libboost_program_options.so", 0x7ffcf5613f40) = -1 ENOENT (No such file or directory)
[pid 6715] openat(AT_FDCWD, "//usr/lib/x86_64-linux-gnu/libboost_program_options.so", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 6715] stat("//usr/lib/x86_64-linux-gnu/libboost_program_options.a", 0x7ffcf5613f90) = -1 ENOENT (No such file or directory)
[pid 6715] openat(AT_FDCWD, "//usr/lib/x86_64-linux-gnu/libboost_program_options.a", O_RDONLY) = -1 ENOENT (No such file or directory)
╭╴ (master *%=)╶╮
╰ jeff@birdsong:src $

Adding this symlink fixes the problem:

jeff@birdsong:~ $ cd /usr/lib/x86_64-linux-gnu
jeff@birdsong:x86_64-linux-gnu $ sudo ln -s libboost_program_options.so.1.65.1 libboost_program_options.so
[sudo] password for jeff:
jeff@birdsong:x86_64-linux-gnu $

ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: libboost-program-options1.65.1 1.65.1+dfsg-0ubuntu5
ProcVersionSignature: Ubuntu 4.15.0-23.25-generic 4.15.18
Uname: Linux 4.15.0-23-generic x86_64
ApportVersion: 2.20.9-0ubuntu7.2
Architecture: amd64
CurrentDesktop: i3
Date: Thu Jun 14 10:39:31 2018
Dependencies:
 gcc-8-base 8-20180414-1ubuntu2
 libc6 2.27-3ubuntu1
 libgcc1 1:8-20180414-1ubuntu2
 libstdc++6 8-20180414-1ubuntu2
EcryptfsInUse: Yes
InstallationDate: Installed on 2015-10-23 (964 days ago)
InstallationMedia: Ubuntu 15.04 "Vivid Vervet" - Release amd64 (20150422)
SourcePackage: boost1.65.1
UpgradeStatus: Upgraded to bionic on 2018-06-14 (0 days ago)

Revision history for this message
Jeff Abrahamson (jeff-purple) wrote :
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.