New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #16378 (closed enhancement: fixed)

Opened 6 years ago

Last modified 5 years ago

boost-1.36

Reported by: sal@… Owned by: sanchom@…
Priority: Normal Milestone:
Component: ports Version: 1.6.0
Keywords: boost Cc: sanchom@…, blair@…, andi@…, andrea.bedini@…, arsptr@…, mcalhoun@…
Port:

Description

Attached is an updated port file for boost 1.36 (came out earlier this month). I didn't have time to turn it into a diff. Note that files/patch-boost-serialization-utility.hpp and files/patch-boost-serialization-utility.hpp are no longer necessary.

Attachments

Portfile (5.4 KB) - added by sal@… 6 years ago.
updated Portfile
Portfile.diff (6.8 KB) - added by andrew@… 6 years ago.
version bump to 1.36.0, added gcc43 and gcc42 variants, uses internal install
python.log (22.5 KB) - added by andrew@… 6 years ago.
kdump NAMI log of python2.5 + openmpi
Portfile.2.diff (5.5 KB) - added by mcalhoun@… 5 years ago.

Change History

Changed 6 years ago by sal@…

updated Portfile

comment:1 Changed 6 years ago by sanchom@…

Thanks for doing this!

I see you appended a patchfile 'patch-configure'. Since you also removed the line that adds the patch file 'patch-build-type-Jamroot', I assume 'patch-configure' is doing the job that 'patch-build-type-Jamroot' used to do?

Could you please attach 'patch-configure'?

comment:2 Changed 6 years ago by andrew@…

I'm really, really starting to hate the boost build system.

I use MPI a lot, and need gcc43. So... build openmpi with gcc43... and try to integrate with boost. BLECH.

I believe the attached diff works... libs seem to build properly...

(Notice that some of the patch files are no longer needed... I verified them in the boost distribution...)

comment:3 Changed 6 years ago by andrew@…

Okay - mpi + python breaks the install. DAMN. Also, linking seems to have gone wonky.

Might be best to remove the gcc42 and gcc43 variants for now.

Yep, I definitely HATE boost.build.

(FYI - building MPI + python creates two "mpi.so" files - one multithreaded, the other not, both of which conflict in name during the install, that need to go in the correct python2.? site-packages directory, with install_name_tool mangling...)

Yep - really, really hate boost.build. Sorry for the noise.

comment:4 Changed 6 years ago by andrew@…

Okay - I've tested my "Portfile.diff" set, and the compilation with gcc43 works just fine. However, there is yet-another bug in the jam install when using the macports gcc43 variant. The problems are two-fold:

  • Two variants of python's "mpi.so" are built, one "release", the other multi-threaded. I have no idea how different they really are, under Darwin. However, boost's installer gets confused because now we have two libraries with the same name.
  • If you delete one (or both) of these "mpi.so" files to allow the installer to complete, it dies on on internal error that, frankly, I can't diagnose.

No, I'm not writing a custom toolset description for jam - too much time, and I'm not smart enough to do it.

Would it be worthwhile adding a proper "install it" script that would handle staging to the destroot, fixing library install names, and all that stuff? Doing it in the portfile is crazy. Criminey!

(Sorry to sound so frustrated, but building 4000+ files to use MPI and experiment with python is starting to wear me down...)

comment:5 follow-up: ↓ 6 Changed 6 years ago by andrew@…

Okay. After much recompiling, I've got openmpi + python compiling and installing. You can't use boost's internal "make install" because, well, it is broken, and sucks. (Can't handle the fact that there are two "mpi.so" objects, etc. Of course, on darwin there is no difference between "normal" and "mt" builds...

After all that effort, it appears that mpi+python is broken, at least on OS X. See this comment.

If you type

python2.5 test.py 

where 'test.py' has

import mpi
print "I am process %d of %d." % (mpi.rank, mpi.size)

you get

Fatal Python error: Interpreter not initialized (version mismatch?)
Abort trap

So, I've googled around, and that python error appears when you're mixing python versions (or debug/release versions) or using python built with a different compiler...

Take a look at the "python.log" file (attached)... it appears from the ktrace that all the right python bits are being loaded.

I give up. I curse boost build tools. I curse boost libraries. The headers are wonderful... but ARGH!

(The Portfile.diff I submitted has been updated.)

Changed 6 years ago by andrew@…

version bump to 1.36.0, added gcc43 and gcc42 variants, uses internal install

Changed 6 years ago by andrew@…

kdump NAMI log of python2.5 + openmpi

comment:6 in reply to: ↑ 5 Changed 6 years ago by blb@…

Replying to andrew@…:

So, I've googled around, and that python error appears when you're mixing python versions (or debug/release versions) or using python built with a different compiler...

That's probably ticket #16111.

comment:7 Changed 6 years ago by blair@…

I'll be needing 1.36.0 very soon.

Can you also look at incorporating these hotfixes in the build:

http://comments.gmane.org/gmane.comp.lib.boost.announce/201 http://svn.boost.org/trac/boost/wiki/ReleasePractices/HotFixes

Thanks, Blair

comment:8 Changed 6 years ago by blair@…

  • Cc blair@… added

Adding myself to cc list.

comment:9 Changed 6 years ago by ryandesign@…

  • Owner changed from macports-tickets@… to sanchom@…

comment:10 Changed 6 years ago by andi@…

  • Cc andi@… added

Cc Me!

comment:11 Changed 6 years ago by andrea.bedini@…

  • Cc andrea.bedini@… added

Cc Me!

comment:12 Changed 6 years ago by arsptr@…

  • Cc arsptr@… added

Cc Me!

comment:13 Changed 5 years ago by mcalhoun@…

Attached is my attempt at boost version 1.36.

I put back the zlib and bzip2 dependencies, which were
removed in r34913.
The reason for the removal

Error: Target org.macports.destroot returned: no files matched glob pattern "*-1_35.dylib"

was fixed by setting the environment variables in destroot.env as well as build.env.

I do not see two versions of mpi.so, which is good, and the correct answer is given by:

/opt/local/bin/python -c 'import mpi; print "I am process %d of %d." % (mpi.rank, mpi.size)'

comment:14 Changed 5 years ago by mcalhoun@…

  • Cc mcalhoun@… added

Cc Me!

Changed 5 years ago by mcalhoun@…

comment:15 Changed 5 years ago by mcalhoun@…

boost was upgraded in r43281.

The issues with python25 (but not python26) remain.
There are still no variants for other compilers.

Perhaps this ticket should be closed.
The outstanding issues can then get their own tickets.

comment:16 Changed 5 years ago by sanchom@…

Agree. This should be closed. Also, I'm active again.

comment:17 Changed 5 years ago by mcalhoun@…

  • Status changed from new to closed
  • Resolution set to fixed

comment:18 Changed 5 years ago by anonymous

  • Milestone Port Enhancements deleted

Milestone Port Enhancements deleted

Note: See TracTickets for help on using tickets.