Hi Piotr,
Thank you for your support and update on this issue!!!
As you suggested, I updated build.sh script and add -lrt at the end of line
350, but still facing the same error.
echo_run ${BOOST_JAM_CC} ${BOOST_JAM_OPT_JAM}
${BJAM_SOURCES} -lrt
*Here is the details of Log: ----------------*
$ ./bootstrap.sh
-n Bootstrapping the build engine with toolset sun...
Failed to bootstrap the build engine
Consult 'bootstrap.log' for more details
$ cat bootstrap.log
###
### Using 'sun' toolset.
###
rm -rf bootstrap
mkdir bootstrap
cc -o bootstrap/jam0 command.c compile.c constants.c debug.c execcmd.c
frames.c function.c glob.c hash.c hdrmacro.c headers.c jam.c jambase.c
jamgram.c lists.c make.c make1.c object.c option.c output.c parse.c
pathsys.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c
modules.c strings.c filesys.c builtins.c class.c cwd.c native.c md5.c
w32_getreg.c modules/set.c modules/path.c modules/regex.c
modules/property-set.c modules/sequence.c modules/order.c execunix.c
fileunix.c pathunix.c -lrt
command.c:
compile.c:
constants.c:
debug.c:
execcmd.c:
frames.c:
function.c:
glob.c:
hash.c:
hdrmacro.c:
headers.c:
jam.c:
jambase.c:
jamgram.c:
lists.c:
make.c:
make1.c:
object.c:
option.c:
output.c:
parse.c:
pathsys.c:
regexp.c:
rules.c:
scan.c:
search.c:
subst.c:
timestamp.c:
variable.c:
modules.c:
strings.c:
filesys.c:
builtins.c:
class.c:
cwd.c:
native.c:
md5.c:
w32_getreg.c:
modules/set.c:
modules/path.c:
modules/regex.c:
modules/property-set.c:
modules/sequence.c:
modules/order.c:
execunix.c:
fileunix.c:
pathunix.c:
./bootstrap/jam0 -f build.jam --toolset=sun --toolset-root=/opt/SUNWspro/
clean
...found 1 target...
...updating 1 target...
...updated 1 target...
./bootstrap/jam0 -f build.jam --toolset=sun --toolset-root=/opt/SUNWspro/
...found 160 targets...
...updating 2 targets...
[COMPILE] bin.solarisx86/b2
command.c:
compile.c:
constants.c:
debug.c:
debugger.c:
"debugger.c", line 2673: warning: statement not reached
execcmd.c:
frames.c:
function.c:
glob.c:
hash.c:
hcache.c:
headers.c:
hdrmacro.c:
jam.c:
jambase.c:
jamgram.c:
lists.c:
make.c:
make1.c:
mem.c:
object.c:
option.c:
output.c:
parse.c:
pathsys.c:
regexp.c:
rules.c:
scan.c:
search.c:
subst.c:
w32_getreg.c:
timestamp.c:
variable.c:
modules.c:
strings.c:
filesys.c:
builtins.c:
class.c:
cwd.c:
native.c:
md5.c:
modules/set.c:
modules/path.c:
modules/regex.c:
modules/property-set.c:
modules/sequence.c:
modules/order.c:
execunix.c:
fileunix.c:
pathunix.c:
Undefined first referenced
symbol in file
clock_gettime timestamp.o
ld: fatal: symbol referencing errors. No output written to bin.solarisx86/b2
"cc" -o bin.solarisx86/b2 "-DNDEBUG" "-DOPT_HEADER_CACHE_EXT"
"-DOPT_GRAPH_DEBUG_EXT" "-DOPT_SEMAPHORE" "-DOPT_AT_FILES"
"-DOPT_DEBUG_PROFILE" "-DJAM_DEBUGGER" "-DOPT_FIX_TARGET_VARIABLES_EXT"
"-DOPT_IMPROVED_PATIENCE_EXT" "-DYYSTACKSIZE=5000" "-s" "-xO3" "command.c"
"compile.c" "constants.c" "debug.c" "debugger.c" "execcmd.c" "frames.c"
"function.c" "glob.c" "hash.c" "hcache.c" "headers.c" "hdrmacro.c" "jam.c"
"jambase.c" "jamgram.c" "lists.c" "make.c" "make1.c" "mem.c" "object.c"
"option.c" "output.c" "parse.c" "pathsys.c" "regexp.c" "rules.c" "scan.c"
"search.c" "subst.c" "w32_getreg.c" "timestamp.c" "variable.c" "modules.c"
"strings.c" "filesys.c" "builtins.c" "class.c" "cwd.c" "native.c" "md5.c"
"modules/set.c" "modules/path.c" "modules/regex.c" "modules/property-set.c"
"modules/sequence.c" "modules/order.c" "execunix.c" "fileunix.c"
"pathunix.c"
...failed [COMPILE] bin.solarisx86/b2...
...skipped bjam for lack of b2...
...failed updating 1 target...
...skipped 1 target...
$
On Fri, Nov 29, 2019 at 5:07 PM Piotr Kowalski
Hi Kamal From what I can see, earlier versions of bootstrap did not use clock_gettime function and that made them link correctly. This function on Solaris requires linking with -lrt
Since you are doing this only for yourself you can edit build.sh script and add -lrt at the end of line 350: echo_run ${BOOST_JAM_CC} ${BOOST_JAM_OPT_JAM} ${BJAM_SOURCES} -lrt
If that helps, boost team may need to fix build.sh to add -lrt if building on Solaris platform
pt., 29 lis 2019 o 08:44 kamallochan Jena
napisał(a): Hi All,
In SunOS, even I am getting below errors which has been reported before by some one and is discussed in " https://github.com/boostorg/thread/issues/283 with Fix.
*Error:*
./boost/thread/pthread/thread_data.hpp:60:5: error: missing binary operator before token "_sysconf" #if PTHREAD_STACK_MIN > 0
Can I consider, this issue has been fixed as updated in " https://github.com/conan-io/conan-center-index/pull/361/commits/ec526ff9fbcc... "
*If Yes, From where the latest boost kit can be downloaded with above fix ??* *Is the above fix, also resolve the previous syntax error "./build.sh: syntax error at line 143: `machine=$' unexpected " ??*
Kindly confirm!!!
Regards, Kamal
On Fri, Nov 29, 2019 at 12:52 PM kamallochan Jena
wrote: Hi All,
FYI, bootstarp.sh from boost_1_56_0 working fine in same SunOS, where boost_1_70_0 is causing the problem.
Thanks, Kamal
On Fri, Nov 29, 2019 at 10:54 AM kamallochan Jena
wrote: Hi Piotr and David, Thank you for your response.
Have modified the build.sh as mentioned, and for all below cases build.sh is failing with *Error: ld: fatal: symbol referencing errors. No output written to bootstrap/jam0 *
Case 1> #!/bin/sh ---> #!/bin/bash Case 2> machine=$(gcc -dumpmachine 2>/dev/null) ---> machine=`gcc -dumpmachine 2>/dev/null` Case 3> machine=$(gcc -dumpmachine 2>/dev/null) ---> machine=` echo $(gcc -dumpmachine 2>/dev/null) `
FYI, default shell of SunOS is /bin/sh $ echo $SHELL /bin/sh
*Details:* $ ./bootstrap.sh -n Bootstrapping the build engine with toolset sun...
Failed to bootstrap the build engine Consult 'bootstrap.log' for more details
$ cat bootstrap.log ### ### Using 'sun' toolset. ### rm -rf bootstrap mkdir bootstrap cc -o bootstrap/jam0 command.c compile.c constants.c debug.c execcmd.c frames.c function.c glob.c hash.c hdrmacro.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c object.c option.c output.c parse.c pathsys.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c class.c cwd.c native.c md5.c w32_getreg.c modules/set.c modules/path.c modules/regex.c modules/property-set.c modules/sequence.c modules/order.c execunix.c fileunix.c pathunix.c command.c: compile.c: constants.c: debug.c: execcmd.c: frames.c: function.c: glob.c: hash.c: hdrmacro.c: headers.c: jam.c: jambase.c: jamgram.c: lists.c: make.c: make1.c: object.c: option.c: output.c: parse.c: pathsys.c: regexp.c: rules.c: scan.c: search.c: subst.c: timestamp.c: variable.c: modules.c: strings.c: filesys.c: builtins.c: class.c: cwd.c: native.c: md5.c: w32_getreg.c: modules/set.c: modules/path.c: modules/regex.c: modules/property-set.c: modules/sequence.c: modules/order.c: execunix.c: fileunix.c: pathunix.c: Undefined first referenced symbol in file clock_gettime timestamp.o *ld: fatal: symbol referencing errors. No output written to bootstrap/jam0* bash-3.2$
--------------
On Thu, Nov 28, 2019 at 7:48 PM Piotr Kowalski via Boost-users < boost-users@lists.boost.org> wrote:
I guess SunOS uses System V specification which is older than POSIX and only supports `` syntax. If you look at autotools they never generate $() to make sure it wil work everywhere even on older /bin/sh
czw., 28 lis 2019 o 14:33 David Demelier via Boost-users < boost-users@lists.boost.org> napisał(a):
Le 28/11/2019 à 12:22, Piotr Kowalski via Boost-users a écrit : > build.sh is intended for /bin/sh but uses bash-specific syntax $(command)
$() is part of POSIX though so I suppose the SunOS default shell isn't POSIX compliant or too old.
Regards,
-- David _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org https://lists.boost.org/mailman/listinfo.cgi/boost-users
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org https://lists.boost.org/mailman/listinfo.cgi/boost-users