Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 16 Jul 2000 09:53:02 -0700 (PDT)
From:      papowell@astart.com
To:        dwhite@resnet.uoregon.edu, luigi@info.iet.unipi.it
Cc:        albert@achtung.com, freebsd-small@FreeBSD.ORG
Subject:   Re: Any new PicoBSD's based on 4.0??
Message-ID:  <200007161653.JAA15619@h4.private>

next in thread | raw e-mail | index | archive | help
> From owner-freebsd-small@FreeBSD.ORG Wed Jun 28 01:23:22 2000
> From: Luigi Rizzo <luigi@info.iet.unipi.it>
> Subject: Re: Any new PicoBSD's based on 4.0??
> To: Doug White <dwhite@resnet.uoregon.edu>
> Date: Wed, 28 Jun 2000 10:24:39 +0200 (CEST)
> Cc: Albert Yang <albert@achtung.com>, freebsd-small@FreeBSD.ORG
>
> > That was the problem I kept running into.  I tried to hack them up to get
> > working on 4.0 but had no success.  4.0 has massive kernel bloat. :(
>
> exactly - this is one (not the only) reason i still stick with 3.5
> on most of my systems.
>
> > > natd, ipfw, dhcp, and ssh?  That would be perfect...
> > 
> > ssh is gigantic.  Good luck.
>
> i managed to put ssh/sshd/scp and all the above on a 3.5-based
> picobsd floppy. The thing is, ssh/sshd/scp (both the one in ports and the
> openbsd version) are not crunchgen-friendly. They have a lot of
> common objects which are not in a library, and reference symbols
> with the same name and different implementations in the other
> files. Plus if you put them in a library there are clashes with
> names in other libraries...
>
> 	cheers
> 	luigi
> -----------------------------------+-------------------------------------
>   Luigi RIZZO, luigi@iet.unipi.it  . Dip. di Ing. dell'Informazione
>   http://www.iet.unipi.it/~luigi/  . Universita` di Pisa
>   TEL/FAX: +39-050-568.533/522     . via Diotisalvi 2, 56126 PISA (Italy)
>   Mobile   +39-347-0373137
> -----------------------------------+-------------------------------------
>

I have been there before on this one.

First, you copy the entire source tree for the items you want
to modify, to a new location,
just like you did before.

Then you find the common object files and put them in a common
directory,  and build a library, just like you did before.

Now you use 'nm' to extract the names of routines that are defined
in the library.

Now you know what is defined in this libary.  You can do one of
the following:

a) generate a file that redefines the names of the variables
   or routines defined in the library file.   Call it 'noclash.h'

   #define original  original_noclash

   In each of the non-common files,  put the following line at
   the start of the file:

   #include "noclash.h"

   Compile and Voila!  You do not get any clashing symbols.

b) Write a perl script that has:

   #/../perl -spi.bak
   s/\Woriginal\W/\Woriginal_noclash\W/;
   ...

   run this perl script on all of the .c files.

   Compile.  You may have a couple of places where you have to
   hand repair.  Do NOT do this.  Modify the perl script instead.


Patrick

Patrick Powell                 Astart Technologies,
papowell@astart.com            9475 Chesapeake Drive, Suite D,
Network and System             San Diego, CA 92123
  Consulting                   858-874-6543 FAX 858-279-8424 
LPRng - Print Spooler (http://www.astart.com)


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-small" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200007161653.JAA15619>