This page is about improvements which we would like to make to the c_like bridge.
Contents
More Flexible Library Specification
The current version of c_like expects that each library is given as one or more files which can be placed into the working directory at like time and passed as filenames to the linker. Also, the header files for all libraries simply get ++ together into /usr/include. Both of these can be problems if there are ever name conflicts.
Another reason to make a change is that many users will come to vesta with familiarty that certain libraries live in certain common locations. Eg, perl libraries are typically located in a path like this: <perl_roor>/lib/5.8.7/"i686-linux-thread-multi-64int"/CORE/libperl.a. If the _run_tool command link is also looking for them there (analogous to a link line outside of vesta) new users to vesta, especially new users to -stop-before-tool, will be able to find their way around better.
The compiler and linker provide better ways to deal with this:
- -L/some/dir to search for libraries in the directory
-lfoo to link against a library named "foo" anywhere on the library search path
- List the entire path to a library file in a different directory
-I/some/dir to search for headeris in the directory
Ideally we would be able to use all of these choices with pre-built libraries.
We probably need new variants of the prebuilt function to handle these cases.
We may want to allow the code specifying the library to pass a function which returns a root filesystem which contains the library and its includes.
Support for Building Leaf Libraries as Shared Objects
See the tracker entry "Better shared library support".
Parallelize building libraries
See the tracker entry "Parallelize building libraries".
per-file overrides for program
See the tracker entry "per-file overrides for program".