TWiki> FST Web>FstDownload>CompilingOnMacOSX (revision 3)EditAttach

Compilation on MacOS X 10.5 Leopard

Version 1.0 of the OpenFst library cannot be compiled on MacOS X 10.5 Leopard using Apple Xcode version of gcc. The reason is that Apple uses gcc 4.0 and this version of gcc has a bug in the copy constructor of TR1's unordered_map. This bug was fixed almost 4 years ago.

We provide here two different workarounds: 1) using a more recent version of gcc (such as the one provided by Fink) or 2) manually patching the relevant include file in Apple's gcc setup.

Using gcc 4.2 from Fink

If you have installed the Fink package manager on your mac, you can use it to install a working version of gcc 4.2.

  1. Make sure you use the lastest version of Fink (0.9.0) and that /sw/bin was added to your PATH environment variable.
  2. Install the gcc42 package
    $ sudo apt-get install gcc42
  3. Compile the OpenFst library using this version of g++ instead of Apple's. In the openfst-1.0 directory, do:
    $ CXX=/sw/bin/g++-4 ./configure
    $ make -j 4
    $ make check

Patching Apple's gcc 4.0 relevant include file

You can also manually change the buggy include file in Apple's setup.

  1. Download the fixed version of tr1/hashtable here Download. The following assumes that the file was saved to ~/Downloads/hashtable, replace that by the actual file location (note that your browser might have rename hashtable to hashtable.txt).
  2. (Optional) Check how minimal the change is:
    $ diff  ~/Downloads/hashtable /usr/include/c++/4.0.0/tr1/hashtable
  3. Overwrite Apple's version with the patched version and restore file permissions and ownership:
    $ sudo cp -f ~/Downloads/hashtable /usr/include/c++/4.0.0/tr1/hashtable
    $ sudo chmod 644 /usr/include/c++/4.0.0/tr1/hashtable
    $ sudo chown root:wheel /usr/include/c++/4.0.0/tr1/hashtable

-- CyrilAllauzen - 03 Mar 2009

Topic attachments
I Attachment History Action Size Date Who Comment
Unknown file formatext hashtable r1 manage 49.0 K 2009-03-03 - 20:15 CyrilAllauzen gcc 4.0 version of tr1/hashtable with fixed copy constructor
Edit | Attach | Watch | Print version | History: r8 | r5 < r4 < r3 < r2 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r3 - 2009-03-04 - CyrilAllauzen
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback