[LLVMdev] OpenBSD. (Was: 1.7 Pre-Release Ready for Testing)

Jeff Cohen jeffc at jolt-lang.org
Mon Apr 17 10:58:36 PDT 2006


I just added __OpenBSD__ everywhere __FreeBSD__ was being tested (there 
were about a dozen places).  I suspect we'll have to add one for NetBSD 
also one day (even DragonflyBSD?).  INT8_MAX and friends ought to be 
declared by <stdint.h>.  It is on FreeBSD.

Ralph Corderoy wrote:

>Hi again,
>
>I wrote:
>  
>
>>>I would like to test but the I modigied the configure to make
>>>unknown = OpenBSD and Unix
>>>      
>>>
>>Have you looked at ./config.log.  ./configure creates this as it runs
>>as a trace of the path it took through ./configure.  Work backwards
>>from the end to find out what it didn't like.
>>    
>>
>
>I remember SourceForge's compile farm has an OpenBSD x86 machine so
>thought I'd give it a go with a recent CVS check-out.
>
>    $ ./configure
>    configure: WARNING: Unknown project (HowToUseJIT) won't be configured automatically
>    configure: WARNING: Unknown project (ModuleMaker) won't be configured automatically
>    configure: WARNING: Unknown project (SmallExamples) won't be configured automatically
>    checking build system type... i386-unknown-openbsd3.8
>    checking host system type... i386-unknown-openbsd3.8
>    checking target system type... i386-unknown-openbsd3.8
>    checking type of operating system we're on... Unknown
>    configure: error: Operating system is unknown, configure can't continue
>
>LLVM's configure.ac has a hard-coded list of supported platforms, which
>is a shame, and `openbsd' isn't in it.
>
>    [case $build in
>      *-*-aix*) 
>        llvm_cv_os_type="AIX" 
>        llvm_cv_platform_type="Unix" ;;
>    ...
>      *-*-freebsd*) 
>        llvm_cv_os_type="FreeBSD" 
>        llvm_cv_platform_type="Unix" ;;
>
>So I forged `freebsd'
>
>    $ ./configure --build=i386-unknown-freebsd3.8
>
>and ./configure completed successfully.  gmake stopped with
>
>    llvm[1]: Compiling Mutex.cpp for Debug build
>    Mutex.cpp:55: warning: the address of `int pthread_mutex_init(volatile
>       pthread_mutex**, pthread_mutex_attr* const*)', will always be `true'
>    Mutex.cpp: In constructor `llvm::sys::Mutex::Mutex(bool)':
>    Mutex.cpp:80: error: `pthread_mutexattr_setpshared' undeclared (first use this
>       function)
>    Mutex.cpp:80: error: (Each undeclared identifier is reported only once for each
>       function it appears in.)
>
>    78  #ifndef __FreeBSD__
>    79      // Make it a process local mutex
>    80      errorcode = pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_PRIVATE);
>    81  #endif
>
>So I modified both occurrences of __FreeBSD__ to also check for
>__OpenBSD__.
>
>The next problem was INT8_MAX, etc., weren't being defined.
>include/llvm/Support/DataTypes.h.in is inadequate for this platform.  I
>dumped a set of definitions into each file that wanted them as a bodge.
>Better autoconf tests could set up INT8_MAX, etc., on all platforms that
>don't define them.
>
>After that, the build completed and I could run llvm-{as,dis} and lli.
>
>So with a little work, OpenBSD looks like it could be supported out of
>the box.  I've only a low-bandwidth Internet connection at the moment so
>it won't be by me but is there a `how to submit a patch for LLVM'
>document somewhere?
>
>Cheers,
>
>
>Ralph.
>
>
>_______________________________________________
>LLVM Developers mailing list
>LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
>
>  
>




More information about the llvm-dev mailing list