What's the right way to do host libraries required for gcc

Daniel Berlin dberlin@dberlin.org
Wed Nov 13 10:51:00 GMT 2002


(DJ, i cc'd you since you maintain libiberty, and thus, might have some 
insight on how to do this)
A bit of context:
On the tree-ssa branch, i've added libbanshee, which is a support 
library for a constraint engine generator (BSD licensed, before the 
uproar starts) that is used for andersen points-to analysis (arguments 
over whether we should do this are not wanted right now. If someone 
feels like implementing Andersen's analysis, and can do it in a way 
that is as memory efficient, fast, and easy to maintain as using this 
constraint engine is, feel free, and I wish you luck. :P)
I've got it so if libbanshee isn't configured, we just leave out 
Andersen's points-to analysis from gcc, no muss, no fuss. So it's not 
*required* in the sense that if one wants to leave it out (or disable 
it on your host or whatever), you can, and everything still works fine, 
this feature just disappears from your gcc.  I've done this mainly 
because while libbanshee is portable, I'm sure that there will be some 
odd platform on which it doesn't build at first (since it's ANSI C, not 
K&R), and i don't want to break their bootstraps until it gets fixed.
But it's still a host built library required for gcc, much the same way 
libiberty is, when it *is* used.
But it's not quite the same, since it's optional (GCC always just 
assumes libiberty is built, since it's absolutely required).
I currently detect whether it was configured from gcc's configure.in 
(since we need to not build tree-alias-ander.c or link in the libraries 
when libbanshee isn't available)  by checking for the existence of 
../libbanshee/config.status.

Is there any better way to do this?  I tried looking through variables 
that the top level makefile uses when figuring out what directories are 
configured, but they aren't exported, so when we configure gcc, they 
aren't available. Should I just make them available?

As I said, I already have it cleanly doing the right thing to not need 
libbanshee if we detect it's not around.  I just need to know if there 
is a better way to do the actual detection of whether it was configured 
or not.

--Dan



More information about the Gcc mailing list