Boost logo

Boost Users :

From: Piotr Kowalski (koval.gnu_at_[hidden])
Date: 2019-12-01 14:59:44


It seems that build.sh linked bjam correctly but then it does the
bootstrapping using bjam itself.
That process is controlled from build.jam file inside src/engine directory.
I am not an expert on jam files but I would suggest to add -lrt to the
--libs variable, i.e. line 469
--libs = $(tool.$(toolset).linklibs) ; should become --libs =
$(tool.$(toolset).linklibs) -lrt ;

niedz., 1 gru 2019 o 06:18 kamallochan Jena <kljena2050_at_[hidden]>
napisał(a):

> Continued to above mail:
>
> >> earlier versions of bootstrap did not use clock_gettime function and
> that made them link correctly.
> Could you please update, in which version of boost the clock_gettime
> function introduced.
>
> Thanks & Regards,
> Kamal
>
> On Sun, Dec 1, 2019 at 10:42 AM kamallochan Jena <kljena2050_at_[hidden]>
> wrote:
>
>>
>> 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 <koval.gnu_at_[hidden]>
>> wrote:
>>
>>> 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 <kljena2050_at_[hidden]>
>>> 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/ec526ff9fbccb14c3b5227884f651f96381f39fd
>>>> "
>>>>
>>>> *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 <kljena2050_at_[hidden]>
>>>> 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 <
>>>>> kljena2050_at_[hidden]> 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_at_[hidden]> 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_at_[hidden]> 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_at_[hidden]
>>>>>>>> https://lists.boost.org/mailman/listinfo.cgi/boost-users
>>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Boost-users mailing list
>>>>>>> Boost-users_at_[hidden]
>>>>>>> https://lists.boost.org/mailman/listinfo.cgi/boost-users
>>>>>>>
>>>>>>



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