Errors compiling SAFECode from SVN

Hello, I’m having issues trying to compile SAFECode 3.2 from SVN.
Maybe the problem is related to this thread
http://lists.cs.uiuc.edu/pipermail/svadev/2012-April/000220.html

My config:

(Lubuntu 13.04)

Linux 3.8.0-19-generic #30-Ubuntu SMP Wed May 1 16:35:23 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

gcc version 4.7.3

My Steps:

cd where-you-want-llvm-to-live
svn co http://llvm.org/svn/llvm-project/llvm/branches/release_32 llvm
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/poolalloc/branches/release_32 poolalloc
svn co http://llvm.org/svn/llvm-project/safecode/branches/release_32 safecode

cd LLVM-object-directory
make tools-only
cd projects/poolalloc
make

(OK till here)

cd …/safecode
make

The error:

In file included from softboundcets.c:53:0:
softboundcets.h:301:20: warning: always_inline function might not be inlinable [-Wattributes]
In file included from softboundcets.c:53:0:
softboundcets.h: In function ‘__softboundcets_copy_metadata’:
softboundcets.h:443:45: error: inlining failed in call to always_inline ‘__softboundcets_trie_allocate’: function body can be overwritten at link time
softboundcets.h:512:25: error: called from here
softboundcets.h:443:45: error: inlining failed in call to always_inline ‘__softboundcets_trie_allocate’: function body can be overwritten at link time
softboundcets.h:518:23: error: called from here
softboundcets.h:443:45: error: inlining failed in call to always_inline ‘__softboundcets_trie_allocate’: function body can be overwritten at link time
softboundcets.h:546:37: error: called from here
softboundcets.h: In function ‘__softboundcets_metadata_store’:
softboundcets.h:443:45: error: inlining failed in call to always_inline ‘__softboundcets_trie_allocate’: function body can be overwritten at link time
In file included from softboundcets.c:53:0:
softboundcets.h:737:28: error: called from here
softboundcets.h: In function ‘__softboundcets_memory_allocation’:
softboundcets.h:999:22: error: inlining failed in call to always_inline ‘__softboundcets_allocate_lock_location’: function body can be overwritten at link time
softboundcets.h:1120:75: error: called from here
softboundcets.h:1139:20: error: inlining failed in call to always_inline ‘__softboundcets_add_to_free_map’: function body can be overwritten at link time
softboundcets.h:1124:34: error: called from here
softboundcets.h:1057:1: error: inlining failed in call to always_inline ‘__softboundcets_allocation_secondary_trie_allocate’: function body can be overwritten at link time
softboundcets.h:1126:53: error: called from here
softboundcets.c: In function ‘__softboundcets_init’:
softboundcets.h:1029:1: error: inlining failed in call to always_inline ‘__softboundcets_allocation_secondary_trie_allocate_range’: function body can be overwritten at link time
softboundcets.c:249:61: error: called from here
In file included from softboundcets.c:53:0:
softboundcets.c: In function ‘main’:
softboundcets.h:1029:1: error: inlining failed in call to always_inline ‘__softboundcets_allocation_secondary_trie_allocate_range’: function body can be overwritten at link time
softboundcets.c:316:59: error: called from here
In file included from softboundcets.c:53:0:
softboundcets.h:1093:1: error: inlining failed in call to always_inline ‘__softboundcets_stack_memory_allocation’: function body can be overwritten at link time
softboundcets.c:318:42: error: called from here
In file included from softboundcets.c:53:0:
softboundcets.h:1057:1: error: inlining failed in call to always_inline ‘__softboundcets_allocation_secondary_trie_allocate’: function body can be overwritten at link time
softboundcets.c:265:53: error: called from here
In file included from softboundcets.c:53:0:
softboundcets.h:301:20: error: inlining failed in call to always_inline ‘__softboundcets_allocate_shadow_stack_space’: function body can be overwritten at link time
softboundcets.c:367:46: error: called from here
In file included from softboundcets.c:53:0:
softboundcets.h:373:20: error: inlining failed in call to always_inline ‘__softboundcets_store_base_shadow_stack’: function body can be overwritten at link time
softboundcets.c:382:42: error: called from here
In file included from softboundcets.c:53:0:
softboundcets.h:386:20: error: inlining failed in call to always_inline ‘__softboundcets_store_bound_shadow_stack’: function body can be overwritten at link time
softboundcets.c:383:43: error: called from here
In file included from softboundcets.c:53:0:
softboundcets.h:398:20: error: inlining failed in call to always_inline ‘__softboundcets_store_key_shadow_stack’: function body can be overwritten at link time
softboundcets.c:384:41: error: called from here
In file included from softboundcets.c:53:0:
softboundcets.h:411:20: error: inlining failed in call to always_inline ‘__softboundcets_store_lock_shadow_stack’: function body can be overwritten at link time
softboundcets.c:385:42: error: called from here
In file included from softboundcets.c:53:0:
softboundcets.h:422:20: error: inlining failed in call to always_inline ‘__softboundcets_deallocate_shadow_stack_space’: function body can be overwritten at link time
softboundcets.c:398:48: error: called from here
In file included from softboundcets.c:53:0:
softboundcets.h:964:20: error: inlining failed in call to always_inline ‘__softboundcets_stack_memory_deallocation’: function body can be overwritten at link time
softboundcets.c:400:44: error: called from here
/bin/rm: cannot remove ‘/home/bugweek/llvm/projects/safecode/runtime/SoftBoundRuntime/Release+Asserts/softboundcets.d.tmp’: No such file or directory
make[2]: *** [/home/bugweek/llvm/projects/safecode/runtime/SoftBoundRuntime/Release+Asserts/softboundcets.o] Error 1
make[2]: Leaving directory /home/bugweek/llvm/projects/safecode/runtime/SoftBoundRuntime' make[1]: *** [SoftBoundRuntime/.makeall] Error 2 make[1]: Leaving directory /home/bugweek/llvm/projects/safecode/runtime’
make: *** [all] Error 1

I’m stuck here. I really appreciate any help.
Thanks in advance.

-Fernando

Fascinating. I’ve never seen that error before. I’m assuming that you did not specify any special options for CFLAGS, LDFLAGS, etc. Is this assumption correct? I’ll try to take a look at this issue early next week. In the meantime, you can probably work around the problem by modifying safecode/runtime/Makefile so that SoftBoundRuntime isn’t listed in PARALLEL_DIRS. Oh, BTW, you should probably post SAFECode problems to llvmdev or sva-dev and not cfe-dev. Since SAFECode isn’t integrated with mainling clang, I think it’s probably off-topic for this list. – John T.