Lothar,
I'll test your code on my systems when I get a chance and report.

Meanwhile, you can easily test the architecture of any file using the "file" command in the shell.

Note that, on my system (shown below), some of the boost filesystem libraries are dual-architecture and some are not. This is consistent with how some projects build--they build individual binaries for a single architecture and then use "lipo" to stick them together. So you need to be sure you are linking in a dual-architecture version of the library and not a single architecture version. Perhaps that is you problem?

$sudo find /usr/local/lib -regex ".*libboost_filesystem.*" -exec file {} \;
Password:
/usr/local/lib/libboost_filesystem-1_34_1.a: current ar archive
/usr/local/lib/libboost_filesystem-1_34_1.dylib: Mach-O dynamically linked shared library i386
/usr/local/lib/libboost_filesystem-d-1_34_1.a: current ar archive
/usr/local/lib/libboost_filesystem-d-1_34_1.dylib: Mach-O dynamically linked shared library i386
/usr/local/lib/libboost_filesystem-d.a: current ar archive
/usr/local/lib/libboost_filesystem-gcc40-1_34.1.34.0.dylib: Mach-O universal binary with 2 architectures
/usr/local/lib/libboost_filesystem-gcc40-1_34.1.34.0.dylib (for architecture ppc7400): Mach-O dynamically linked shared library ppc
/usr/local/lib/libboost_filesystem-gcc40-1_34.1.34.0.dylib (for architecture i386): Mach-O dynamically linked shared library i386

/usr/local/lib/libboost_filesystem-gcc40-1_34.a: Mach-O universal binary with 2 architectures
/usr/local/lib/libboost_filesystem-gcc40-1_34.a (for architecture ppc): current ar archive
/usr/local/lib/libboost_filesystem-gcc40-1_34.a (for architecture i386): current ar archive
/usr/local/lib/libboost_filesystem-gcc40-1_34.dylib: Mach-O universal binary with 2 architectures
/usr/local/lib/libboost_filesystem-gcc40-1_34.dylib (for architecture ppc7400): Mach-O dynamically linked shared library ppc
/usr/local/lib/libboost_filesystem-gcc40-1_34.dylib (for architecture i386): Mach-O dynamically linked shared library i386
/usr/local/lib/libboost_filesystem-gcc40-d-1_34.1.34.0.dylib: Mach-O universal binary with 2 architectures
/usr/local/lib/libboost_filesystem-gcc40-d-1_34.1.34.0.dylib (for architecture ppc7400): Mach-O dynamically linked shared library ppc
/usr/local/lib/libboost_filesystem-gcc40-d-1_34.1.34.0.dylib (for architecture i386): Mach-O dynamically linked shared library i386
/usr/local/lib/libboost_filesystem-gcc40-d-1_34.a: Mach-O universal binary with 2 architectures
/usr/local/lib/libboost_filesystem-gcc40-d-1_34.a (for architecture ppc): current ar archive
/usr/local/lib/libboost_filesystem-gcc40-d-1_34.a (for architecture i386): current ar archive
/usr/local/lib/libboost_filesystem-gcc40-d-1_34.dylib: Mach-O universal binary with 2 architectures
/usr/local/lib/libboost_filesystem-gcc40-d-1_34.dylib (for architecture ppc7400): Mach-O dynamically linked shared library ppc
/usr/local/lib/libboost_filesystem-gcc40-d-1_34.dylib (for architecture i386): Mach-O dynamically linked shared library i386
/usr/local/lib/libboost_filesystem-gcc40-mt-1_34.1.34.0.dylib: Mach-O universal binary with 2 architectures
/usr/local/lib/libboost_filesystem-gcc40-mt-1_34.1.34.0.dylib (for architecture ppc7400): Mach-O dynamically linked shared library ppc
/usr/local/lib/libboost_filesystem-gcc40-mt-1_34.1.34.0.dylib (for architecture i386): Mach-O dynamically linked shared library i386
/usr/local/lib/libboost_filesystem-gcc40-mt-1_34.a: Mach-O universal binary with 2 architectures
/usr/local/lib/libboost_filesystem-gcc40-mt-1_34.a (for architecture ppc): current ar archive
/usr/local/lib/libboost_filesystem-gcc40-mt-1_34.a (for architecture i386): current ar archive
/usr/local/lib/libboost_filesystem-gcc40-mt-1_34.dylib: Mach-O universal binary with 2 architectures
/usr/local/lib/libboost_filesystem-gcc40-mt-1_34.dylib (for architecture ppc7400): Mach-O dynamically linked shared library ppc
/usr/local/lib/libboost_filesystem-gcc40-mt-1_34.dylib (for architecture i386): Mach-O dynamically linked shared library i386
/usr/local/lib/libboost_filesystem-gcc40-mt-d-1_34.1.34.0.dylib: Mach-O universal binary with 2 architectures
/usr/local/lib/libboost_filesystem-gcc40-mt-d-1_34.1.34.0.dylib (for architecture ppc7400): Mach-O dynamically linked shared library ppc
/usr/local/lib/libboost_filesystem-gcc40-mt-d-1_34.1.34.0.dylib (for architecture i386): Mach-O dynamically linked shared library i386
/usr/local/lib/libboost_filesystem-gcc40-mt-d-1_34.a: Mach-O universal binary with 2 architectures
/usr/local/lib/libboost_filesystem-gcc40-mt-d-1_34.a (for architecture ppc): current ar archive
/usr/local/lib/libboost_filesystem-gcc40-mt-d-1_34.a (for architecture i386): current ar archive
/usr/local/lib/libboost_filesystem-gcc40-mt-d-1_34.dylib: Mach-O universal binary with 2 architectures
/usr/local/lib/libboost_filesystem-gcc40-mt-d-1_34.dylib (for architecture ppc7400): Mach-O dynamically linked shared library ppc
/usr/local/lib/libboost_filesystem-gcc40-mt-d-1_34.dylib (for architecture i386): Mach-O dynamically linked shared library i386
/usr/local/lib/libboost_filesystem-mt-1_34_1.a: current ar archive
/usr/local/lib/libboost_filesystem-mt-1_34_1.dylib: Mach-O dynamically linked shared library i386
/usr/local/lib/libboost_filesystem-mt-d-1_34_1.a: current ar archive
/usr/local/lib/libboost_filesystem-mt-d-1_34_1.dylib: Mach-O dynamically linked shared library i386
/usr/local/lib/libboost_filesystem-mt-d.a: current ar archive
/usr/local/lib/libboost_filesystem-mt.a: current ar archive
/usr/local/lib/libboost_filesystem.a: current ar archive

Some time ago, I created a make file that builds a simple fat32, fat64, and quad-arch program  loading a static and dynamic lib as an exercise to figure out how to do so with make and lipo. The results show what the multi-architecture libraries should report using "file" on them:

hello:                      Mach-O universal binary with 4 architectures
hello (for architecture i386): Mach-O executable i386
hello (for architecture ppc7400): Mach-O executable ppc
hello (for architecture ppc64): Mach-O 64-bit executable ppc64
hello (for architecture x86_64): Mach-O 64-bit executable x86_64
hello.fat32.o:              Mach-O universal binary with 2 architectures
hello.fat32.o (for architecture i386): Mach-O object i386
hello.fat32.o (for architecture ppc7400): Mach-O object ppc
hello.fat64.o:              Mach-O universal binary with 2 architectures
hello.fat64.o (for architecture ppc64): Mach-O 64-bit object ppc64
hello.fat64.o (for architecture x86_64): Mach-O 64-bit object x86_64
hello_fat32:                Mach-O universal binary with 2 architectures
hello_fat32 (for architecture i386): Mach-O executable i386
hello_fat32 (for architecture ppc7400): Mach-O executable ppc
hello_fat64:                Mach-O universal binary with 2 architectures
hello_fat64 (for architecture ppc64): Mach-O 64-bit executable ppc64
hello_fat64 (for architecture x86_64): Mach-O 64-bit executable x86_64
libuniversal.fat32.dylib:   Mach-O universal binary with 2 architectures
libuniversal.fat32.dylib (for architecture i386): Mach-O object i386
libuniversal.fat32.dylib (for architecture ppc7400): Mach-O object ppc
libuniversal.fat64.dylib:   Mach-O universal binary with 2 architectures
libuniversal.fat64.dylib (for architecture ppc64): Mach-O 64-bit object ppc64
libuniversal.fat64.dylib (for architecture x86_64): Mach-O 64-bit object x86_64
libuniversal.i386.dylib:    Mach-O object i386
libuniversal.ppc64.dylib:   Mach-O 64-bit object ppc64
libuniversal.ppc7400.dylib: Mach-O object ppc
libuniversal.x86_64.dylib:  Mach-O 64-bit object x86_64
libworld.fat32.a:           Mach-O universal binary with 2 architectures
libworld.fat32.a (for architecture i386): Mach-O object i386
libworld.fat32.a (for architecture ppc7400): Mach-O object ppc
libworld.fat64.a:           Mach-O universal binary with 2 architectures
libworld.fat64.a (for architecture ppc64): Mach-O 64-bit object ppc64
libworld.fat64.a (for architecture x86_64): Mach-O 64-bit object x86_64
libworld.i386.a:            Mach-O object i386
libworld.ppc64.a:           Mach-O 64-bit object ppc64
libworld.ppc7400.a:         Mach-O object ppc
libworld.x86_64.a:          Mach-O 64-bit object x86_64

On 2/26/08, Lothar May <boost@lotharmay.de> wrote:
Hi Daniel,

compiling boost is successful on my system, too. Are boost exceptions
caught using your build? Is your build universal?

  > I missed the thread on this, but I'll help you out if I can--just
  > bring me up to speed.

Sample test code is this:

--cut here--

#include <iostream>
#include <boost/filesystem.hpp>

using namespace std;
using namespace boost::filesystem;

int
main()
{
     try
     {
         directory_iterator i("does_not_exist");
     } catch(...)
     {
         cout << "This is never printed on MacOS 10.5." << endl;
     }
     return 0;
}

--cut here--

Best regards,

Lothar


_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users