Commit Graph

4 Commits

Author SHA1 Message Date
Paulo Cesar Pereira de Andrade 27261a950d Modify sdksyms.sh to receive $top_srcdir as first argument.
If the basename of header file processed by cpp matches $top_srcdir,
check for extern symbols in the output, and add to the xorg_symbols
vector.
  Possibly a better solution then using this script would be to somehow
tell the linker to not drop any symbols from the binary being generated.
2008-12-11 14:43:04 -02:00
Paulo Cesar Pereira de Andrade 7c8720c143 Correct wrong symbol reference on sparc.
The awk script was incorrectly referencing the struct name, and
not the struct variable.
  Also added some comments to sdksyms.sh, for the reason it generates
the "symbol table" and add a message to the generated file, telling
is was automatically generated.
2008-12-08 22:11:50 -02:00
Benjamin Close 8c1dd40a04 Don't use gnu specific extensions to awk when builing symbols
Traditional posix awk doesn't know about \W and whilst we check that
awk exists in configure.ac we don't check which awk we are using.
This corrects symbol generation for posix only awk.
2008-12-08 14:49:38 +10:30
Paulo Cesar Pereira de Andrade b1dac41fb3 Use libtool convenience libraries and better "symbol" table.
All .a libraries were converted to .la, and instead of linking the
Xorg binary with a mix of .a and .la, and adding some libraries more
then once in the command line, etc, now it generates a single libxorg.la
from all the required convenience libraries, and links with a dummy
xorg.c (that should usually be the file with the main function...).
This removes the requirement of some things like libosandcommon and
libinit, that existed to circumvent problems when linking multiple
.a and .la in the final Xorg binary.

  The "symbol table" is now generated dynamically, by a shell script,
with an embedded gawk parser that parses cpp output. The new file
sdksyms.sh is generated by hand by analyzing all Makefile.am's and
making it create a sdksyms.c file, that includes all sdk headers that
will add symbols for the Xorg binary. Module headers aren't read, and
a in 2 files it was required to add a "<hash>ifndef XorgLoader" around
declarations shared between the Xorg binary and libextmod. A few
other changes were added to other sdk headers, like preventing
multiple inclusion, or including other headers to satisfy dependencies.

  This should be a lot more portable, and better (hopefully properly)
using libtool to generate convenience libraries.
2008-12-07 02:22:19 -02:00