I have slightly narrowed down the problem with "trie" on BSD. It turns out that bugpoint was not lying when it said that none of the gccld passes were causing a problem; in fact, the bug is triggered when you say gccld -o=trie Output/trie.linked.bc -lgcc -lc and not when you say gccld -o=trie Output/trie.linked.bc (in both cases, I was testing with the JIT.)
Can you figure out if it's -lgcc or -lc that is causing the problem?
What I recall from last night is, the bug only happens if you use both -lgcc and -lc, and it goes away if you take away either -lgcc or -lc.
This should fix the bug: http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20031020/008560.html If so, please close it.
trie now works on FBSD as well. Thanks, Chris!