Boost logo

Boost Users :

From: kamallochan Jena (kljena2050_at_[hidden])
Date: 2019-12-02 10:21:51


Hi Piotr,

The above changes also not fixing the issue. Getting same error.

*Changes: *
      File: boost_1_70_0/tools/build/src/engine/build.jam
      Line no: 469
      Modified line to --libs = $(tool.$(toolset).linklibs) -lrt ;

*Error:*
   pathunix.c:
   Undefined first referenced
   symbol in file
   clock_gettime timestamp.o
   ld: fatal: symbol referencing errors. No output written to bootstrap/jam0

Thanks & Regards,
Kamal

On Sun, Dec 1, 2019 at 8:29 PM Piotr Kowalski <koval.gnu_at_[hidden]> wrote:

> 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