Date: Wed, 24 Apr 1996 09:15:40 -0600 (CST) From: Aaron Ucko Subject: Re: strip { no! not you :) } To: naderr AT topaz DOT cqu DOT edu DOT au Cc: djgpp AT delorie DOT com Message-id: <01I3WXJV4UDE004T5C@VAX1.ROCKHURST.EDU> Organization: Rockhurst College; Kansas City, MO MIME-version: 1.0 Content-type: TEXT/PLAIN; CHARSET=US-ASCII Content-transfer-encoding: 7BIT >But this is what I get from dosemu .... > > >D:\SRC\85309\ASSGN\1\Q2>strip --strip-all lbb.exe >d:/djgpp/bin/strip.exe: lbb.exe: File format not recognized You can't strip .exes; you have to do exe2coff lbb.exe strip --strip-all lbb coff2exe lbb >Not that it's a great concern though, I notice that >the targets on msdos are huge compared to Linux > ># v /a5/src/85309/assgn/1/q2/lbb.exe >-rwxr-xr-x 1 root root 290326 Apr 24 19:37 /a5/src/85309/assgn/1/q2/lbb.exe* > >Even without stripping that's about 4 times larger! Linux has shared libraries, so library functions used under Linux don't actually have to be linked into the executable, but can be dynamically loaded at runtime. (This is a slight oversimplification.) DJGPP doesn't at this point. The closest thing is DXEs, via which it should be possible to make jumptable-style shared libs. Linux used to use these when it was a.out-based, but now it's ELF-based and uses smoother ELF shared libs. Therefore, if your program uses, say, 100K of standard library functions (remember, the whole object file has to be linked in, not just the function) then it will be about 100K larger under DJGPP. -- Aaron Ucko (ucko AT vax1 DOT rockhurst DOT edu; finger for PGP public key) | httyp! "That's right," he said. "We're philosophers. We think, therefore we am." -- Terry Pratchett, _Small Gods_ | Geek Code 3.1 [for explanation, finger hayden AT mankato DOT msus DOT edu]: GCS/M/S/C d- s: a18 C++(+++)>++++ UL++>++++ P++ L++>+++++ E- W(-) N++(+) o+ K- w--- O M@ V-(--) PS++(+++) PE- Y(+) PGP(+) t(+) !5 X-- R(-) tv-@ b++(+++) DI+ !D-- G++(+++) e->+++++(*) h!>+ r-(--)>+++ y?