Boost logo

Boost Users :

From: Rene Rivera (grafikrobot_at_[hidden])
Date: 2019-12-03 14:49:08


On Tue, Dec 3, 2019 at 5:05 AM kamallochan Jena via Boost-users <
boost-users_at_[hidden]> wrote:

> Hi Piotr and All,
>
> On further analysis in boost code, I found below line of code causing
> "./bootstrap.sh" to fail in SunOS.
> Can some one look into it and suggest for a fix for Error 2.
>
> Error 1 : ./build.sh: syntax error at line 143: `machine=$' unexpected
>
> File name: build.sh
> Line No : 143
> Fix : machine=`gcc -dumpmachine 2>/dev/null`
> <------- Piotr suggested
>
>
> Error 2 : clock_gettime timestamp.o
> ld: fatal: symbol referencing errors. No output
> written to bootstrap/jam0
>
> File name: boost_1_70_0/tools/build/src/engine/timestamp.c
> Function: timestamp_current()
> Problematic code : line no 135 to 144, which are introduced in
> latest boost releases.
>
> ===============
> 126 void timestamp_current( timestamp * const t )
> 127 {
> 128 #ifdef OS_NT
> 129 /* GetSystemTimeAsFileTime()'s resolution seems to be
> about 15 ms on Windows
> 130 * XP and under a millisecond on Windows 7.
> 131 */
> 132 FILETIME ft;
> 133 GetSystemTimeAsFileTime( &ft );
> 134 timestamp_from_filetime( t, &ft );
>
>
>
>
>
>
>
>
> *135 #elif defined(_POSIX_TIMERS) && defined(CLOCK_REALTIME) && \ 136
> (!defined(__GLIBC__) || (__GLIBC__ > 2) || (__GLIBC__ == 2 &&
> __GLIBC_MINOR__ >= 17)) 137 /* Some older versions of XCode
> define _POSIX_TIMERS, but don't actually 138 * have
> clock_gettime. Check CLOCK_REALTIME as well. Prior to glibc 2.17, 139
> * clock_gettime requires -lrt. This is a non-critical feature, so
> 140 * we just disable it to keep bootstrapping simple. 141
> */ 142 struct timespec ts; 143 clock_gettime(
> CLOCK_REALTIME, &ts ); <------------------------ It is causing
> ./bootstrap.sh fail with Error: * ld: fatal: symbol referencing errors.
> No output written to bootstrap/jam0
>

The clock_gmtime function is part of POSIX. But it looks like your compiler
is not including the appropriate POSIX runtime library automatically. If
it's the SunOS "cc" compiler you can change this line <
https://github.com/boostorg/build/blob/boost-1.70.0/src/engine/build.sh#L253>
to:

    BOOST_JAM_CC="cc -lrt"

Per current Oracle docs <
https://docs.oracle.com/cd/E19109-01/tsolaris7/805-8069/6j7j9vnt1/index.html>.
If it's some other compiler you'll have to find the equivalent BOOST_JAM_CC
line and add that "-lrt" option.

-- 
-- Rene Rivera
-- Grafik - Don't Assume Anything
-- Robot Dreams - http://robot-dreams.net


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net