Boost logo

Boost Users :

From: kamallochan Jena (kljena2050_at_[hidden])
Date: 2019-12-02 12:55:48


Hi All,

*FYI: With my changes below error, has been fixed in SunOS. *

* Error:*

 ./boost/thread/pthread/thread_data.hpp:60:5: error: missing binary
operator before token "_sysconf"
 #if PTHREAD_STACK_MIN > 0

*However waiting for your suggestion to fix below error observed in SunOS: *

     $ ./bootstrap.sh
       -n Bootstrapping the build engine with toolset sun...

       Failed to bootstrap the build engine
       Consult 'bootstrap.log' for more details

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

Your advice or suggestions will be much appreciated!!!

Regards,
Kamal

On Mon, Dec 2, 2019 at 3:51 PM kamallochan Jena <kljena2050_at_[hidden]>
wrote:

> 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