The one thing that is still not right after getting BCP working with the patch in the previous email is the .so/.dylib/.dll file names. Previously, they came out looking like this:

libboost_MYextralLabel_chrono-macos15-clang16-arm-d.dylib

Now they look like this:

libboost_chrono-macos15-clang16-arm-d.dylib

Did the changes we made to Jamroot cause this? Or is there something somewhere else that needs a patch? It seems we need the file names to be correct (the way they were before).

Thanks,

Nick


On Thu, Jan 16, 2025 at 7:44 PM Nicholas Williams <nicholas@nicholaswilliams.net> wrote:
This helped me a lot, however. I was able to expand on your suggested patch. Everything works perfectly if I patch Jamroot as follows before running bcp:

--- boost/Jamroot   2025-01-12 12:14:52
+++ boost/Jamroot.new    2025-01-16 15:09:03
@@ -305,24 +305,24 @@
 # First, the complicated libraries: where the target name in Jamfile is
 # different from its directory name.
 explicit
-    [ alias prg_exec_monitor : libs/test/build//boost_prg_exec_monitor ]
-    [ alias test_exec_monitor : libs/test/build//boost_test_exec_monitor ]
-    [ alias unit_test_framework : libs/test/build//boost_unit_test_framework ]
-    [ alias serialization : libs/serialization/build//boost_serialization ]
-    [ alias wserialization : libs/serialization/build//boost_wserialization ]
+    [ alias prg_exec_monitor : libs/test/build//"boost"_prg_exec_monitor ]
+    [ alias test_exec_monitor : libs/test/build//"boost"_test_exec_monitor ]
+    [ alias unit_test_framework : libs/test/build//"boost"_unit_test_framework ]
+    [ alias serialization : libs/serialization/build//"boost"_serialization ]
+    [ alias wserialization : libs/serialization/build//"boost"_wserialization ]
     ;
 for local l in $(all-libraries-to-build)
 {
     if ! $(l) in test graph serialization headers
     {
-        explicit [ alias $(l) : libs/$(l)/build//boost_$(l) ] ;
+        explicit [ alias $(l) : libs/$(l)/build//"boost"_$(l) ] ;
     }
 }
 for local l in $(all-libraries-modular-build)
 {
     if ! $(l) in test graph serialization headers
     {
-        explicit [ alias $(l) : /boost/$(l)//boost_$(l) ] ;
+        explicit [ alias $(l) : /boost/$(l)//"boost"_$(l) ] ;
     }
 }

@@ -449,7 +449,7 @@
     local lib-module
         = [ project.load $(lib-path) : synthesize ] ;
     modules.poke $(lib-module) : BOOST_LIB_PROJECT : /boost/$(lib) ;
-    modules.poke $(lib-module) : BOOST_LIB_TARGET : boost_$(lib) ;
+    modules.poke $(lib-module) : BOOST_LIB_TARGET : "boost"_$(lib) ;
     project.push-current [ project.target $(lib-module) ] ;
     module $(lib-module)
     {


On Thu, Jan 16, 2025 at 2:46 PM Nicholas Williams <nicholas@nicholaswilliams.net> wrote:
This got me further, but it ultimately still failed later in the config with a similar error:

...
    - std_wstreambuf builds    : yes [2]
    - std_wstreambuf           : yes [2]
    - BOOST_COMP_GNUC >= 4.3.0 : no [2]
    - BOOST_COMP_GNUC >= 4.3.0 : no [3]
error: Unable to find file or target named
error:     'libs/thread/build//boost_MYextralLabel_thread'
error: referred to from project at
error:     '.'

Notable differences in this error message are that now the target it's unable to find contains my custom namespace, and now the project referring to it is '.' instead of a path to subdirectory.

Also notable that this new error is the same error I previously received if I deleted the 'boost' output directory after running `bcp` but before running `bootstrap`. So it seems that your suggested past gets past one bug but reveals the next bug.

Thanks,

Nick


On Thu, Jan 16, 2025 at 1:01 PM Дмитрий Архипов via Boost-users <boost-users@lists.boost.org> wrote:
чт, 16 янв. 2025 г. в 18:09, Nicholas Williams via Boost-users
<boost-users@lists.boost.org>:
> error: Unable to find file or target named
> error:     '/boost/align//boost_align'
> error: referred to from project at
> error:     '{dir}/_dst/libs/atomic/build'
> make: *** [build] Error 1

That is a bug in bcp. If you're looking for a quick fix, find this
line in Jamroot:

    modules.poke $(lib-module) : BOOST_LIB_TARGET : boost_$(lib) ;

And replace it with

    modules.poke $(lib-module) : BOOST_LIB_TARGET : "boost"_$(lib) ;

Then run bcp again.
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
https://lists.boost.org/mailman/listinfo.cgi/boost-users