GHC 6.4.2 won't build on Mac OS X
|Reported by:||guest||Owned by:|
|Operating System:||MacOS X||Architecture:||powerpc|
|Type of failure:||Difficulty:||Easy (less than 1 hour)|
|Test Case:||Blocked By:|
I'm running Mac OS X Tiger (10.4.6) and trying to build GHC 6.4.2 (using GCC 4.0.1 and GHC 6.4.1) and I'm ran into a problem where certain constants (e.g., UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END) are not found, causing compilation to stop. The same issue occurred for at least one other user with GHC 6.5; unfortunately, I can't find the post again.
Tiger ships with a NetBSD partial version of the readline library in /usr. Unfortunately, this file lacks a lot of the functionality in the GNU readline and is not compatible enough.
To get around this:
# Download and decompress the GNU readline library, v5.1 tarball (other version may work)
# cd <readline source dir>
# sudo make install #Installs to /usr/lib/include and /usr/lib/bin
# cd <GHC source dir>
# export LDFLAGS=-L/usr/local/lib # tell linker to use GNU version of readline
# export CPPFLAGS=-I/usr/local/include # tell compiler to use GNU version of readline
# ./configure --disable-openal --disable-alut # Audio disabled because of unrealted bug
# sudo make install
This should do it. Steps 7 and 8 could cause problems because the compile will look for ALL libraries in /usr/local before looking in /usr.
The compilation is successful and ghc and ghci run; however, Unfortunately, I won't be able to test the results for some time.
It should be possible to detect the lack of readline through the configure process. The NetBSD bad readline.h file results in the following statements:
checking for rl_erase_empty_line in -lreadline... no
checking for rl_free_undo_list in -lreadline... no
The GNU readline 5.1 library results in the following statements:
checking for rl_erase_empty_line in -lreadline... yes
checking for rl_free_undo_list in -lreadline... yes
It may be possible to create a test in the configure file by looking at the platform and these two functions. Also, the platform-specific documentation could be updated.
Change History (6)
Changed 8 years ago by gwright@…
comment:3 Changed 8 years ago by guest
- Difficulty changed from Unknown to Easy (1 hr)
- severity changed from blocker to normal