llvm-mirror/cmake
Todd Fiala f2dea859ee Fix configure to find arc4random via header files.
ISSUE:

On Ubuntu 12.04 LTS, arc4random is provided by libbsd.so, which is a
transitive dependency of libedit. If a system had libedit on it that
was implemented in terms of libbsd.so, then the arc4random test,
previously implemented as a linker test, would succeed with -ledit.
However, on Ubuntu this would also require a #include <bsd/stdlib.h>.
This caused a build breakage on configure-based Ubuntu 12.04 with
libedit installed.

FIX:

This fix changes configure to test for arc4random by searching for it
in the standard header files. On Ubuntu 12.04, this test now properly
fails to find arc4random as it is not defined in the default header
locations. It also tweaks the #define names to match the output of the
header check command, which is slightly different than the linker
function check #defines.

I tested the following scenarios:

(1) Ubuntu 12.04 without the libedit package [did not find arc4random,
as expected]

(2) Ubuntu 12.04 with libedit package [properly did not find
arc4random, as expected]

(3) Ubuntu 12.04 with most recent libedit, custom built, and not
dependent on libbsd.so [properly did not find arc4random, as
expected].

(4) FreeBSD 10.0B1 [properly found arc4random, as expected]

llvm-svn: 200819
2014-02-05 05:04:36 +00:00
..
modules [CMake] Deliberately get all LLVM library dependencies for standalone builds. 2014-02-05 00:02:42 +00:00
platforms Remove -arm-enable-ehabi from Android build rules. It's enabled by default. 2014-01-29 12:36:18 +00:00
config-ix.cmake Fix configure to find arc4random via header files. 2014-02-05 05:04:36 +00:00
nsis_logo.bmp CMake: polish the Windows packaging rules 2013-08-15 23:44:31 +00:00
README

See docs/CMake.html for instructions on how to build LLVM with CMake.