[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Native object relocation in GCL



Greetings!  GCL, maxima, acl2, and axiom use a bfd-based native object
relocation facility to loading compiled lisp objects into the running
lisp image.  This works on all 12 Debian platforms now save only ia64
and hppa.

We've recently added support for mips, mipsel, and alpha, which like
at least some of these two use global position registers and other
atypical linking features.  We did this by crafting and adding a
global symbol table (i.e. .got/GOT) section at the end of each
compiled file, setting the GP register to the beginning of this table,
and pointing the relocation records in all other sections to the new
table.  THe special relocation functions in libbfd are redirected if
necessary. 

It would simplify life greatly if I could extend this functionality to
ia64 and hppa, as maintaining the alternate workarounds based on
dlopen is cumbersome.  It would be helpful if someone could point me
to some succinct documentation somewhere which describes the handful
of relocation types output by gcc.  Better yet if someone knows of an
existing implementation in some other program I could study and copy. 

Take care,
-- 
Camm Maguire			     			camm@enhanced.com
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah



Reply to: