Opened 17 years ago

Closed 12 years ago

#583 closed Bugs (wontfix)

Fixes for build on IBM pSeries for AIX and Linux

Reported by: wmichael Owned by: Thomas Witt
Milestone: Boost 1.36.0 Component: None
Version: None Severity: Showstopper
Keywords: Cc:

Description (last modified by René Rivera)

This is a fix to allow building Boost on pSeries to 
work better. This fixes problem with the building of 
dynamic libraries and shared objects. It also adds a 
bunch of the latest option supported by the V8 
compiler. This unified diff patch has been tested on 
1.33.1 and CVS.

Attachments (29)

boost_1_34_0_ibm.udiff (18.8 KB ) - added by Thomas Witt 15 years ago.
boost-date_time-date_generators_hpp.patch (943 bytes ) - added by Thomas Witt 15 years ago.
boost-function_hpp.patch (718 bytes ) - added by Thomas Witt 15 years ago.
boost-numeric-interval-detail-ppc_rounding_control_hpp.patch (741 bytes ) - added by Thomas Witt 15 years ago.
boost-python-module_init_hpp.patch (1.8 KB ) - added by Thomas Witt 15 years ago.
boost-regex-v4-basic_regex_hpp.patch (965 bytes ) - added by Thomas Witt 15 years ago.
boost-tr1-detail-config_hpp.patch (692 bytes ) - added by Thomas Witt 15 years ago.
libs-concept_check-stl_concept_covering_cpp.patch (2.1 KB ) - added by Thomas Witt 15 years ago.
libs-filesystem-src-operations_cpp.patch (670 bytes ) - added by Thomas Witt 15 years ago.
libs-graph-src-graphviz_digraph_lex_cpp.patch (637 bytes ) - added by Thomas Witt 15 years ago.
libs-graph-src-graphviz_graph_lex_cpp.patch (629 bytes ) - added by Thomas Witt 15 years ago.
libs-mpl-test-integral_c_cpp.patch (486 bytes ) - added by Thomas Witt 15 years ago.
libs-python-test-select_from_python_test_cpp.patch (971 bytes ) - added by Thomas Witt 15 years ago.
libs-test-test-prg_exec_fail2_cpp.patch (510 bytes ) - added by Thomas Witt 15 years ago.
tools-build-v2-tools-python_jam.patch (1.1 KB ) - added by Thomas Witt 15 years ago.
tools-build-v2-tools-vacpp_jam.patch (4.7 KB ) - added by Thomas Witt 15 years ago.
tools-build-v2-util-os_jam.patch (485 bytes ) - added by Thomas Witt 15 years ago.
tools-regression-compiler_status_cpp.patch (742 bytes ) - added by Thomas Witt 15 years ago.
Jamfile.v2.patch (420 bytes ) - added by Thomas Witt 15 years ago.
This replaces libs-mpl-test-integral_c_cpp.patch (486 bytes) - added by witt on 05/31/07 14:13:32.
boost-numeric-interval-detail-ppc_rounding_control_hpp.2.patch (735 bytes ) - added by Thomas Witt 15 years ago.
Update patch per request from guillaume.melquiond@…
aix_init_module.patch (1.5 KB ) - added by Dave Abrahams 15 years ago.
Removal of aix_init_module.cpp
boost_python.dsp.patch (464 bytes ) - added by ccambly@… 15 years ago.
Remove aix_init_module.cpp
date_generators.hpp.patch (807 bytes ) - added by ccambly@… 15 years ago.
date time generator fix. nth_as_str is used before it is declared.
function.hpp.patch (616 bytes ) - added by ccambly@… 15 years ago.
Preprocessor iteration was fixed in V8 on IBM XL compiler
Jamfile.v2.2.patch (302 bytes ) - added by ccambly@… 15 years ago.
Remove aix_init_module.cpp
module_init.hpp.patch (1.3 KB ) - added by ccambly@… 15 years ago.
aix_init_module code is no longer required now that the libraries are built correctly. aix_init_module code has not worked since library tagging was added to Boost.Build.
ppc_rounding_control.hpp.patch (564 bytes ) - added by ccambly@… 15 years ago.
conflicting declarations from math.h
select_from_python_test.cpp.patch (772 bytes ) - added by ccambly@… 15 years ago.
Linker on LinuxPPC requires the definition of handle_execption_impl
operations.cpp.patch (687 bytes ) - added by ccambly@… 15 years ago.
readdir_r is not thread safe by default on AIX this is why the wide_test fails.

Download all attachments as: .zip

Change History (53)

comment:1 by Douglas Gregor, 17 years ago

Logged In: YES 
user_id=249098

I have a few minor comments on the patch:

1) <optimization>speed is a feature that is meant to be common across all 
toolsets, so it should not be removed. It could translate to -O3 or -O4, 
perhaps.

2) <runtime-link>static is another feature that is meant to be common. Can 
it not be supported on XL C++?

comment:2 by Thomas Witt, 15 years ago

Milestone: Boost 1.34.1
Severity: Showstopper

comment:3 by Thomas Witt, 15 years ago

Owner: changed from Vladimir Prus to Thomas Witt
Status: assignednew

by Thomas Witt, 15 years ago

Attachment: boost_1_34_0_ibm.udiff added

by Thomas Witt, 15 years ago

Attachment: boost-function_hpp.patch added

by Thomas Witt, 15 years ago

by Thomas Witt, 15 years ago

by Thomas Witt, 15 years ago

by Thomas Witt, 15 years ago

by Thomas Witt, 15 years ago

by Thomas Witt, 15 years ago

by Thomas Witt, 15 years ago

by Thomas Witt, 15 years ago

by Thomas Witt, 15 years ago

comment:4 by Thomas Witt, 15 years ago

Split patch in multiple files for easier review.

comment:5 by René Rivera, 15 years ago

Description: modified (diff)

The build related patches applied to RC branch:

tools-build-v2-tools-python_jam.patch (1.1 kB) - added by witt on 05/31/07 14:14:13. tools-build-v2-tools-vacpp_jam.patch (4.7 kB) - added by witt on 05/31/07 14:15:27. tools-build-v2-util-os_jam.patch (485 bytes) - added by witt on 05/31/07 14:15:44.

Merging changes back to HEAD now.

comment:6 by Thomas Witt, 15 years ago

Applied the following to RC_1_34_0

patching file boost/function.hpp patching file libs/concept_check/stl_concept_covering.cpp patching file boost/date_time/date_generators.hpp patching file libs/graph/src/graphviz_digraph_lex.cpp patching file libs/graph/src/graphviz_graph_lex.cpp patching file libs/filesystem/src/operations.cpp patching file boost/tr1/detail/config.hpp

by Thomas Witt, 15 years ago

Attachment: Jamfile.v2.patch added

This replaces libs-mpl-test-integral_c_cpp.patch (486 bytes) - added by witt on 05/31/07 14:13:32.

comment:7 by Thomas Witt, 15 years ago

Applied Jamfile.v2.patch (420 bytes) - added by witt on 06/01/07 12:29:47 to RC_1_34_0.

comment:8 by Thomas Witt, 15 years ago

Applied libs-test-test-prg_exec_fail2_cpp.patch (510 bytes) - added by witt on 05/31/07 14:14:02 to RC_1_34_0.

comment:9 by Thomas Witt, 15 years ago

Applied boost-regex-v4-basic_regex_hpp.patch (0.9 kB) - added by witt on 05/31/07 14:11:46 to RC_1_34_0.

comment:10 by Dave Abrahams, 15 years ago

I have no problem with the 2nd Boost.Python patch. The first one essentially rips out a mechanism that we had to have on AIX to get things to work (because of its different linking model) and spent a great deal of time developing. I'm a little reluctant to apply that patch without having any explanation of why the mechanism is no longer needed. It's always possible they adjusted some flags in the toolset; if so I'm OK with it. However, if we're going to rip that thing out, we should also remove the aix_init_module.cpp source file from CVS and from Boost.Python's Jamfile.

Two further notes:

  1. "It also adds a bunch of the latest option supported by the V8 compiler" probably implies we're breaking compatibility with earlier versions of this compiler.
  2. This is an awfully large patchset to apply for a point release :)

comment:11 by Thomas Witt, 15 years ago

Applied the following patches to RC_1_34_0:

tools-regression-compiler_status_cpp.patch (0.7 kB) - added by witt on 05/31/07 14:16:04.
libs-python-test-select_from_python_test_cpp.patch (0.9 kB) - added by witt on 05/31/07

comment:12 by Thomas Witt, 15 years ago

Applied the following patches to RC_1_34_0:

boost-python-module_init_hpp.patch (1.8 kB) - added by witt on 05/31/07 14:11:32.

This makes aix_init_module.cpp obsolete. I did not remove it at this point as I don't want to mess with the build as such.

by Thomas Witt, 15 years ago

Update patch per request from guillaume.melquiond@…

comment:13 by Thomas Witt, 15 years ago

Resolution: Nonefixed
Status: newclosed

Applied the following patches to RC_1_34_0:

boost-numeric-interval-detail-ppc_rounding_control_hpp.2.patch (0.7 kB) - added by witt on 06/07/07 14:43:02.

This was the last outstanding patch.

by Dave Abrahams, 15 years ago

Attachment: aix_init_module.patch added

Removal of aix_init_module.cpp

comment:14 by Dave Abrahams, 15 years ago

Resolution: fixed
Status: closedreopened

Patch enclosed to remove aix_init_module. The following files under libs/python should be cvs remove'd:

  • src/aix_init_module.cpp
  • example/Jamfile.v2
  • example/Jamrules
  • example/project.zip

I realize those last 3 are a separate issue technically, but they are each damaging in their own ways.

comment:15 by Thomas Witt, 15 years ago

Resolution: fixed
Status: reopenedclosed

Applied patch and removed src/aix_init_module.cpp from RC_1_34_0. The example/... files are not in RC_1_34_0.

comment:16 by ccambly@…, 15 years ago

Resolution: fixed
Status: closedreopened

Many of these patches have not been applied to trunk. I will re-open attaching patches for the trunk branch.

by ccambly@…, 15 years ago

Attachment: boost_python.dsp.patch added

Remove aix_init_module.cpp

by ccambly@…, 15 years ago

Attachment: date_generators.hpp.patch added

date time generator fix. nth_as_str is used before it is declared.

by ccambly@…, 15 years ago

Attachment: function.hpp.patch added

Preprocessor iteration was fixed in V8 on IBM XL compiler

by ccambly@…, 15 years ago

Attachment: Jamfile.v2.2.patch added

Remove aix_init_module.cpp

by ccambly@…, 15 years ago

Attachment: module_init.hpp.patch added

aix_init_module code is no longer required now that the libraries are built correctly. aix_init_module code has not worked since library tagging was added to Boost.Build.

by ccambly@…, 15 years ago

conflicting declarations from math.h

by ccambly@…, 15 years ago

Linker on LinuxPPC requires the definition of handle_execption_impl

by ccambly@…, 15 years ago

Attachment: operations.cpp.patch added

readdir_r is not thread safe by default on AIX this is why the wide_test fails.

comment:17 by ccambly@…, 15 years ago

All the patches have now been attached that we are interested in.

comment:18 by John Maddock, 15 years ago

Milestone: Boost 1.34.1Boost 1.35.0

comment:19 by Steven Watanabe, 13 years ago

Someone with access to this compiler needs to review these patches and split them up into one ticket per library.

comment:20 by viboes, 12 years ago

I propose to close this ticket. If the reporter want to make a ticket by component/library these could be taken in account by the library maintainers. Otherwise no body will be able to close this ticket, as no body can apply all the patches.

comment:21 by Dave Abrahams, 12 years ago

Alternatively, you could make a ticket for each component addressed by this patch and simply point it at this ticket. That would probably be a minimal and fairly mechanical job.

comment:22 by ccambly, 12 years ago

Over a period of the last few years we have been adding each of these fixes as separate tickets. Michael and I are ok with closing this particular ticket. I will open an remaining issues directly against the library.

comment:23 by Jeremiah Willcock, 12 years ago

The BGL patches in here are obsolete (they are to files that no longer exist).

comment:24 by Marshall Clow, 12 years ago

Resolution: wontfix
Status: reopenedclosed

Over a period of the last few years we have been adding each of these fixes as separate tickets. Michael and I are ok with closing this particular ticket. I will open an remaining issues directly against the library.

Ok, then - I'm closing it.

Note: See TracTickets for help on using tickets.