[Top][All Lists]

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

[Gcl-devel] Re: tub

From: Camm Maguire
Subject: [Gcl-devel] Re: tub
Date: 10 Aug 2005 11:08:46 -0400
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2


Robert Boyer <address@hidden> writes:

> You might want to look at
>    http://www.BitWagon.com/tub/tub.html
> for documentation of tub (evade task_unapped_base) for a hack that supposedly
> lets one get up 2.8GB.  Fairly recent.  And it is a user-mode hack, i.e., one
> does not need to be root or rebuild the kernel.

This is what I love about the open source community -- what ingenuity
to scratch the common itch!  The depth of knowledge squirreled away in
at least some brain of the world will never cease to amaze me.

In principle, we could incorporate tub into gcl.  It is x86 only
however.  Furthermore, a quick attempt at building with gcc-4.0 gives:

gcc -g -O3   -c -o tub_cstart.o tub_cstart.c
tub_cstart.c:15: warning: conflicting types for built-in function 'bzero'
tub_cstart.c: In function 'tub_cstart':
tub_cstart.c:156: warning: incompatible implicit declaration of built-in 
function 'strlen'
gcc    -c -o tub_libc.o tub_libc.S
gcc -g -O3   -c -o tub_mmap.o tub_mmap.c
gcc -g -O3   -c -o tub_sigbus.o tub_sigbus.c
In file included from /usr/include/sys/types.h:216,
                 from /usr/include/linux/types.h:6,
                 from /usr/include/asm-generic/siginfo.h:5,
                 from /usr/include/asm/siginfo.h:4,
                 from tub_signal.h:84,
                 from tub_sigbus.c:1:
/usr/include/sys/select.h:38: error: conflicting types for 'sigset_t'
tub_signal.h:10: error: previous declaration of 'sigset_t' was here
In file included from /usr/include/asm/siginfo.h:4,
                 from tub_signal.h:84,
                 from tub_sigbus.c:1:
/usr/include/asm-generic/siginfo.h:75: error: syntax error before 'clock_t'
/usr/include/asm-generic/siginfo.h:92: error: syntax error before '}' token
/usr/include/asm-generic/siginfo.h:93: error: syntax error before '}' token
In file included from tub_sigbus.c:1:
tub_signal.h:88: error: syntax error before 'siginfo_t'
tub_sigbus.c:6: error: syntax error before 'siginfo_t'
tub_sigbus.c: In function 'handler':
tub_sigbus.c:8: error: 'uc' undeclared (first use in this function)
tub_sigbus.c:8: error: (Each undeclared identifier is reported only once
tub_sigbus.c:8: error: for each function it appears in.)
tub_sigbus.c:12: error: 'signum' undeclared (first use in this function)
tub_sigbus.c:15: error: 'info' undeclared (first use in this function)
tub_sigbus.c: In function 'setup_sigbus_handler':
tub_sigbus.c:45: error: syntax error before 'siginfo_t'
make: *** [tub_sigbus.o] Error 1

This or analogous approaches are worth pursuing, but the static build
is the sure fire solution within our control.  I don't feel
comfortable shipping a static gcl, but the power user should be able
to so build if they desire.

Just another note about binary lifetime -- while static linking
removes binary obsolescence induced by external library change, gcl
may silently break in any case with gcc upgrades.  Being able to
rebuild from source at all times appears so important.  Just recently,
sigblock and sigsetmask have become deprecated, which means we have to
remove them before the next gcc go round when they simply will be

One other issue on the static front -- there are a number of functions
in libc currently in use by gcl for which the linker warns that
compatible dynamic runtime libc versions are required even with static
linking.  These are mostly password lookups and the like, and may be
replaceable.  At present, you can see the list by adding "-static " to
compiler::*ld*, and calling (compiler::link nil "new") -- this wont
work (yet) but will display the errors to which I'm referring.

Take care,

Take care,

> Bob

Camm Maguire                                            address@hidden
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]