-
-
Notifications
You must be signed in to change notification settings - Fork 230
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Patches for setting up the UTF8-named directory for BOOST #421
Closed
Closed
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -20,6 +20,9 @@ cd "$pwd" | |
cp "./src/engine/b2" . 2>/dev/null | ||
cp "./src/engine/b2.exe" . 2>/dev/null | ||
|
||
# Fix up the UTF8 test (AIX does not support utf8 file/dir names) | ||
cp -r libs/wave/test/testwave/testfiles/utf8-test libs/wave/test/testwave/testfiles/utf8-test-ßµ™∃ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. These paths do not exists in the B2 sources. And hence fail when this script is run. These changes, if wanted, belong in the Boost bootstrap. |
||
|
||
cat << EOF | ||
|
||
Building is done. To install, run: | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,161 @@ | ||
# Copyright Vladimir Prus 2004. | ||
# Copyright Toon Knapen 2004. | ||
# Distributed under the Boost Software License, Version 1.0. | ||
# (See accompanying file LICENSE.txt | ||
# or copy at https://www.bfgroup.xyz/b2/LICENSE.txt) | ||
|
||
#| tag::doc[] | ||
|
||
[[bbv2.reference.tools.compiler.openxl]] | ||
= IBM Visual Age | ||
|
||
The `openxl` module supports the http://www.ibm.com/software/ad/openxl[IBM | ||
Visual Age] C++ Compiler, for the AIX operating system. Versions 7.1 and | ||
8.0 are known to work. | ||
|
||
The module is initialized using the following syntax: | ||
|
||
---- | ||
using openxl ; | ||
---- | ||
|
||
The module does not accept any initialization options. The compiler | ||
should be installed in the `/usr/openxl/bin` directory. | ||
|
||
Later versions of Visual Age are known as XL C/C++. They were not tested | ||
with the the `openxl` module. | ||
|
||
|# # end::doc[] | ||
|
||
# | ||
# B2 V2 toolset for the IBM XL C++ compiler | ||
# | ||
|
||
import toolset : flags ; | ||
import feature ; | ||
import common ; | ||
import generators ; | ||
import os ; | ||
|
||
feature.extend toolset : openxl ; | ||
toolset.inherit openxl : unix ; | ||
generators.override openxl.prebuilt : builtin.prebuilt ; | ||
generators.override openxl.searched-lib-generator : searched-lib-generator ; | ||
|
||
# Configure the openxl toolset | ||
rule init ( version ? : command * : options * ) | ||
{ | ||
local condition = [ | ||
common.check-init-parameters openxl : version $(version) ] ; | ||
|
||
command = [ common.get-invocation-command openxl : ibm-clang++_r | ||
: $(command) : "/opt/IBM/openxlC/17.1.0/bin/ibm-clang++_r" ] ; | ||
|
||
common.handle-options openxl : $(condition) : $(command) : $(options) ; | ||
} | ||
|
||
# Declare generators | ||
generators.register-c-compiler openxl.compile.c : C : OBJ : <toolset>openxl ; | ||
generators.register-c-compiler openxl.compile.c++ : CPP : OBJ : <toolset>openxl ; | ||
|
||
# Declare flags | ||
flags openxl CFLAGS <optimization>speed : -O3 ; | ||
flags openxl CFLAGS <optimization>space : -O2 -Os ; | ||
|
||
# Discretionary inlining (not recommended) | ||
flags openxl CFLAGS <inlining>off : -fno-inline-functions ; | ||
flags openxl CFLAGS <inlining>on : ; | ||
#flags openxl CFLAGS <inlining>full : -qinline ; | ||
flags openxl CFLAGS <inlining>full : ; | ||
|
||
# Exception handling | ||
flags openxl C++FLAGS <exception-handling>off : -fno-exceptions ; | ||
flags openxl C++FLAGS <exception-handling>on : ; | ||
|
||
# Run-time Type Identification | ||
flags openxl C++FLAGS <rtti>off : -fno-rtti ; | ||
flags openxl C++FLAGS <rtti>on : ; | ||
|
||
# Enable 64-bit memory addressing model | ||
flags openxl CFLAGS <address-model>64 : -m64 ; | ||
flags openxl LINKFLAGS <address-model>64 : -m64 ; | ||
flags openxl ARFLAGS <target-os>aix/<address-model>64 : -X 64 ; | ||
|
||
# Use absolute path when generating debug information | ||
flags openxl CFLAGS <debug-symbols>on : -g ; | ||
flags openxl LINKFLAGS <debug-symbols>on : -g ; | ||
flags openxl LINKFLAGS <debug-symbols>off : ; | ||
|
||
if [ os.name ] = AIX | ||
{ | ||
flags openxl.compile C++FLAGS : -ffunction-sections ; | ||
|
||
# The -bnoipath strips the prepending (relative) path of libraries from | ||
# the loader section in the target library or executable. Hence, during | ||
# load-time LIBPATH (identical to LD_LIBRARY_PATH) or a hard-coded | ||
# -blibpath (*similar* to -lrpath/-lrpath-link) is searched. Without | ||
# this option, the prepending (relative) path + library name is | ||
# hard-coded in the loader section, causing *only* this path to be | ||
# searched during load-time. Note that the AIX linker does not have an | ||
# -soname equivalent, this is as close as it gets. | ||
# | ||
# The above options are definitely for AIX 5.x, and most likely also for | ||
# AIX 4.x and AIX 6.x. For details about the AIX linker see: | ||
# http://download.boulder.ibm.com/ibmdl/pub/software/dw/aix/es-aix_ll.pdf | ||
# | ||
flags openxl.link LINKFLAGS <link>shared : -bnoipath ; | ||
|
||
# Run-time linking | ||
flags openxl.link EXE-LINKFLAGS <link>shared : -brtl ; | ||
} | ||
|
||
# Profiling | ||
flags openxl CFLAGS <profiling>on : -pg ; | ||
flags openxl LINKFLAGS <profiling>on : -pg ; | ||
|
||
flags openxl.compile OPTIONS <cflags> ; | ||
flags openxl.compile.c++ OPTIONS <cxxflags> ; | ||
flags openxl DEFINES <define> ; | ||
flags openxl UNDEFS <undef> ; | ||
flags openxl HDRS <include> ; | ||
flags openxl STDHDRS <sysinclude> ; | ||
flags openxl.link OPTIONS <linkflags> ; | ||
flags openxl ARFLAGS <arflags> ; | ||
|
||
flags openxl LIBPATH <library-path> ; | ||
flags openxl NEEDLIBS <library-file> ; | ||
flags openxl FINDLIBS <find-shared-library> ; | ||
flags openxl FINDLIBS <find-static-library> ; | ||
|
||
# Select the compiler name according to the threading model. | ||
flags openxl OPENXL_C_COMPILER <threading>single : ibm-clang_r ; | ||
flags openxl OPENXL_C_COMPILER <threading>multi : ibm-clang_r ; | ||
flags openxl OPENXL_CXX_COMPILER <threading>single : ibm-clang++_r ; | ||
flags openxl OPENXL_CXX_COMPILER <threading>multi : ibm-clang++_r ; | ||
|
||
SPACE = " " ; | ||
|
||
actions openxl.link bind NEEDLIBS | ||
{ | ||
$(OPENXL_CXX_COMPILER) $(EXE-LINKFLAGS) $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) $(OPTIONS) $(USER_OPTIONS) | ||
} | ||
|
||
actions openxl.link.dll bind NEEDLIBS | ||
{ | ||
$(OPENXL_CXX_COMPILER) -shared -Wl,-G $(LINKFLAGS) -o "$(<[1])" $(HAVE_SONAME)-Wl,-soname$(SPACE)-Wl,$(<[-1]:D=) -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) $(OPTIONS) $(USER_OPTIONS) | ||
} | ||
|
||
actions openxl.compile.c | ||
{ | ||
$(OPENXL_C_COMPILER) -c $(OPTIONS) $(USER_OPTIONS) -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)" | ||
} | ||
|
||
actions openxl.compile.c++ | ||
{ | ||
$(OPENXL_CXX_COMPILER) -c $(OPTIONS) $(USER_OPTIONS) -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)" | ||
} | ||
|
||
actions updated together piecemeal openxl.archive | ||
{ | ||
ar $(ARFLAGS) ru "$(<)" "$(>)" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,161 @@ | ||
# Copyright Vladimir Prus 2004. | ||
# Copyright Toon Knapen 2004. | ||
# Distributed under the Boost Software License, Version 1.0. | ||
# (See accompanying file LICENSE.txt | ||
# or copy at https://www.bfgroup.xyz/b2/LICENSE.txt) | ||
|
||
#| tag::doc[] | ||
|
||
[[bbv2.reference.tools.compiler.xlclang]] | ||
= IBM Visual Age | ||
|
||
The `xlclang` module supports the http://www.ibm.com/software/ad/xlclang[IBM | ||
Visual Age] C++ Compiler, for the AIX operating system. Versions 7.1 and | ||
8.0 are known to work. | ||
|
||
The module is initialized using the following syntax: | ||
|
||
---- | ||
using xlclang ; | ||
---- | ||
|
||
The module does not accept any initialization options. The compiler | ||
should be installed in the `/usr/xlclang/bin` directory. | ||
|
||
Later versions of Visual Age are known as XL C/C++. They were not tested | ||
with the the `xlclang` module. | ||
|
||
|# # end::doc[] | ||
|
||
# | ||
# B2 V2 toolset for the IBM XL C++ compiler | ||
# | ||
|
||
import toolset : flags ; | ||
import feature ; | ||
import common ; | ||
import generators ; | ||
import os ; | ||
|
||
feature.extend toolset : xlclang ; | ||
toolset.inherit xlclang : unix ; | ||
generators.override xlclang.prebuilt : builtin.prebuilt ; | ||
generators.override xlclang.searched-lib-generator : searched-lib-generator ; | ||
|
||
# Configure the xlclang toolset | ||
rule init ( version ? : command * : options * ) | ||
{ | ||
local condition = [ | ||
common.check-init-parameters xlclang : version $(version) ] ; | ||
|
||
command = [ common.get-invocation-command xlclang : xlclang++ | ||
: $(command) : "/opt/IBM/xlC/16.1.0/bin/xlclang++" ] ; | ||
|
||
common.handle-options xlclang : $(condition) : $(command) : $(options) ; | ||
} | ||
|
||
# Declare generators | ||
generators.register-c-compiler xlclang.compile.c : C : OBJ : <toolset>xlclang ; | ||
generators.register-c-compiler xlclang.compile.c++ : CPP : OBJ : <toolset>xlclang ; | ||
|
||
# Declare flags | ||
flags xlclang CFLAGS <optimization>speed : -O3 -qstrict ; | ||
flags xlclang CFLAGS <optimization>space : -O2 -qcompact ; | ||
|
||
# Discretionary inlining (not recommended) | ||
flags xlclang CFLAGS <inlining>off : -qnoinline ; | ||
flags xlclang CFLAGS <inlining>on : -qinline ; | ||
#flags xlclang CFLAGS <inlining>full : -qinline ; | ||
flags xlclang CFLAGS <inlining>full : ; | ||
|
||
# Exception handling | ||
flags xlclang C++FLAGS <exception-handling>off : -qnoeh ; | ||
flags xlclang C++FLAGS <exception-handling>on : -qeh ; | ||
|
||
# Run-time Type Identification | ||
flags xlclang C++FLAGS <rtti>off : -qnortti ; | ||
flags xlclang C++FLAGS <rtti>on : -qrtti ; | ||
|
||
# Enable 64-bit memory addressing model | ||
flags xlclang CFLAGS <address-model>64 : -q64 ; | ||
flags xlclang LINKFLAGS <address-model>64 : -q64 ; | ||
flags xlclang ARFLAGS <target-os>aix/<address-model>64 : -X 64 ; | ||
|
||
# Use absolute path when generating debug information | ||
flags xlclang CFLAGS <debug-symbols>on : -g -qfullpath ; | ||
flags xlclang LINKFLAGS <debug-symbols>on : -g -qfullpath ; | ||
flags xlclang LINKFLAGS <debug-symbols>off : -s ; | ||
|
||
if [ os.name ] = AIX | ||
{ | ||
flags xlclang.compile C++FLAGS : -qfuncsect ; | ||
|
||
# The -bnoipath strips the prepending (relative) path of libraries from | ||
# the loader section in the target library or executable. Hence, during | ||
# load-time LIBPATH (identical to LD_LIBRARY_PATH) or a hard-coded | ||
# -blibpath (*similar* to -lrpath/-lrpath-link) is searched. Without | ||
# this option, the prepending (relative) path + library name is | ||
# hard-coded in the loader section, causing *only* this path to be | ||
# searched during load-time. Note that the AIX linker does not have an | ||
# -soname equivalent, this is as close as it gets. | ||
# | ||
# The above options are definitely for AIX 5.x, and most likely also for | ||
# AIX 4.x and AIX 6.x. For details about the AIX linker see: | ||
# http://download.boulder.ibm.com/ibmdl/pub/software/dw/aix/es-aix_ll.pdf | ||
# | ||
flags xlclang.link LINKFLAGS <link>shared : -bnoipath ; | ||
|
||
# Run-time linking | ||
flags xlclang.link EXE-LINKFLAGS <link>shared : -brtl ; | ||
} | ||
|
||
# Profiling | ||
flags xlclang CFLAGS <profiling>on : -pg ; | ||
flags xlclang LINKFLAGS <profiling>on : -pg ; | ||
|
||
flags xlclang.compile OPTIONS <cflags> ; | ||
flags xlclang.compile.c++ OPTIONS <cxxflags> ; | ||
flags xlclang DEFINES <define> ; | ||
flags xlclang UNDEFS <undef> ; | ||
flags xlclang HDRS <include> ; | ||
flags xlclang STDHDRS <sysinclude> ; | ||
flags xlclang.link OPTIONS <linkflags> ; | ||
flags xlclang ARFLAGS <arflags> ; | ||
|
||
flags xlclang LIBPATH <library-path> ; | ||
flags xlclang NEEDLIBS <library-file> ; | ||
flags xlclang FINDLIBS <find-shared-library> ; | ||
flags xlclang FINDLIBS <find-static-library> ; | ||
|
||
# Select the compiler name according to the threading model. | ||
flags xlclang XLCLANG_C_COMPILER <threading>single : xlclang ; | ||
flags xlclang XLCLANG_C_COMPILER <threading>multi : xlclang ; | ||
flags xlclang XLCLANG_CXX_COMPILER <threading>single : xlclang++ ; | ||
flags xlclang XLCLANG_CXX_COMPILER <threading>multi : xlclang++ ; | ||
|
||
SPACE = " " ; | ||
|
||
actions xlclang.link bind NEEDLIBS | ||
{ | ||
$(XLCLANG_CXX_COMPILER) $(EXE-LINKFLAGS) $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) $(OPTIONS) $(USER_OPTIONS) | ||
} | ||
|
||
actions xlclang.link.dll bind NEEDLIBS | ||
{ | ||
$(XLCLANG_CXX_COMPILER) -G $(LINKFLAGS) -o "$(<[1])" $(HAVE_SONAME)-Wl,-soname$(SPACE)-Wl,$(<[-1]:D=) -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS) $(OPTIONS) $(USER_OPTIONS) | ||
} | ||
|
||
actions xlclang.compile.c | ||
{ | ||
$(XLCLANG_C_COMPILER) -c $(OPTIONS) $(USER_OPTIONS) -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)" | ||
} | ||
|
||
actions xlclang.compile.c++ | ||
{ | ||
$(XLCLANG_CXX_COMPILER) -c $(OPTIONS) $(USER_OPTIONS) -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)" | ||
} | ||
|
||
actions updated together piecemeal xlclang.archive | ||
{ | ||
ar $(ARFLAGS) ru "$(<)" "$(>)" | ||
} |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These paths do not exists in the B2 sources. And hence fail when this script is run. These changes, if wanted, belong in the Boost bootstrap.