Mail Archives: djgpp/2001/07/24/16:44:02
On Tue, 24 Jul 2001 12:23:20, JT Williams wrote:
> -: This is a port of GNU Sed 3.02.80 to MSDOS/DJGPP.
>
> % unzip -l 3.02/sed302b.zip | grep sed.exe
> 98304 04-20-00 02:03 bin/sed.exe
>
> % unzip -l 3.02.80/sed3028b.zip | grep sed.exe
> 682752 07-22-01 02:03 bin/sed.exe
>
> What happened!?
Two things happened:
1) I have compiled using the GNU regex implementation included
in the sed sources and not the DJGPP libc regex. GNU regex is
superior to the DJGPP regex. If you inspect the sed302b.zip
package you will find a second sed binary called gsed.exe.
That one is the out-of-the-box compiled sed binary. That sed
program has been compiled with GNU regex and that binary must
be compared with the sed binary from sed3028b.zip.
The sed.exe from sed302b.zip has been created by Eli using
the regex functions from DJGPP 2.03.
2) I have compiled with NLS support. This means that lintl.a (functions
used to translate english strings to other languages) and liconv.a
(functions needed for on-the-fly recoding from unix charsets to dos
codepages) are linked to the binary. Binaries with NLS are always
bigger than binaries without NLS.
The real size of sed.exe is around 1.5MB (compiled with -O2 -g). I have stripped
(strip -gsxX sed.exe) the binary und compressed with upx (upx --best sed.exe) to
get the actual size. If you know that DJGPP's regex implementation is good enough
for your purposes (it has never been for my purposes), then I would suggest to
reconfigure and recompile the package. Install the sources and run the following
command sequence:
make distclean
djgpp\config no-NLS --with-regex=libc.a
make
make check
make install
Please note that I have never tested this. But it should work.
Hope this helps.
Regards,
Juan M. Guerrero
- Raw text -