[uClibc]enabling malloc `uClinux broken munmap' code

Marshall M. Midden m4 at brecis.com
Tue Oct 15 12:37:57 UTC 2002


I am in the far east this week (tickets arranged friday, on plane saturday)
[.tw], and I feel that "this" is the only solution at the moment.  I love that
malloc on "arm" report just moments ago.  It must be an nommu system!
(One symptom is to overwrite random memory -- most of the time low memory.)

I can not fully test the changes for some time to come.

The hotel here has an internet connection that works semi-ok for web.  ssh is
interesting.  Connect for short periods of time and it hangs up.  Debugging
packets with ethereal (as if I don't have better things to do) show that the
ZyXEL VDSL box is doing NAT incorrectly for icmp redirects, and sometimes it
does not get the tcp sequence number correct.  OpenBSD catches this and reports
the error back to the server, and the nat box really hoses that up, and causes
the ssh server in california to disconnect.

I found that if I keep it under 13 seconds per connection, I can get things
done.  Sending e-mail has proven a challenge -- /usr/ucb/Mail ... .

My ramblings from jetlag is showing. (7:30pm here, body thinks is it 5:30am)

Last thing ... when did you say pthreads would work?  Holiday's present?

------------------------------------------------------------------------------
> From uclibc-admin at uclibc.org Mon Oct 14 23:53:44 2002
> From: Miles Bader <miles at lsi.nec.co.jp>
> ...
> Hi,
> 
> I added (locally) the following to the uClibc Makefile to enable the
> malloc work-around for uClinux's broken munmap.  Is this OK?  Maybe it
> ought to be a config-file option or something, but ...
> 
> -Miles
> 
> --- Makefile.~1.183.~   2002-10-09 09:57:55.000000000 +0900
> +++ Makefile    2002-10-15 15:46:45.000000000 +0900
> @@ -161,10 +161,14 @@ uClibc_config: Makefile Config
>         else \
>             echo "#undef __UCLIBC_HAS_IPV6__" >> include/bits/uClibc_config.h ; \
>         fi
> +        # [For now we make the assumption that a linux system without an
> +        # MMU must be uClinux, and must have a broken munmap (both
> +        # assumptions are a bit dodgy, but can be changed in the future).]
>         @if [ "$(HAS_MMU)" = "true" ] ; then \
>             echo "#define __UCLIBC_HAS_MMU__ 1" >> include/bits/uClibc_config.h ; \
>         else \
>             echo "#undef __UCLIBC_HAS_MMU__" >> include/bits/uClibc_config.h ; \
> +           echo "#define __UCLIBC_UCLINUX_BROKEN_MUNMAP__ 1" >> include/bits/uClibc_config.h
> ; \
>         fi
>         @if [ "$(HAS_FLOATING_POINT)" = "true" ] ; then \
>             echo "#define __UCLIBC_HAS_FLOATS__ 1" >> include/bits/uClibc_config.h ; \
> 
> -Miles



More information about the uClibc mailing list