Thread overview
Manipulate .lib or .obj[optimisation again]
Feb 24, 2010
veb
Feb 25, 2010
Walter Bright
Feb 26, 2010
veb
Mar 12, 2010
Walter Bright
February 24, 2010
Hello,

I'm looking for tips to optimize the size of one of my program.

I see that the sds.lib is make by some part that we can delete or add or extract in a .obj file.

But I would like to optimize the siez of my exe and often only a part of these
parts are used. For example 'patch16' is composed by
	FDIV_R                            FDIV_M32
	FDIV_M32I                         FDIV_M64
	FDIVR_M16I                        FDIVR_M32I
	FDIVR_M64                         FDIVR_M32
	FDIV_M16I

and when I delete patch16 from sds.lib, I have the error message explaining that FDIV_R is missing. So my programm use only FDIV_R.

Patch16 take 2020 bytes in my exe. Thus I would like to delete in Patch16.obj what I don't need to reduce the size of my .exe.

I tryed to dissassemble it with obj2asm, but I can't reassemble only what I want to reduce the size (more than 100 error messages because some things are not defined)

How could I reduce the size of my exe, deleting or extracting what I want in Patch16.obj(for example)?

Thanks for help.
February 25, 2010
veb wrote:
> Hello,
> 
> I'm looking for tips to optimize the size of one of my program.
> 
> I see that the sds.lib is make by some part that we can delete or add or
> extract in a .obj file.
> 
> But I would like to optimize the siez of my exe and often only a part of these
> parts are used. For example 'patch16' is composed by
> 	FDIV_R                            FDIV_M32
> 	FDIV_M32I                         FDIV_M64
> 	FDIVR_M16I                        FDIVR_M32I
> 	FDIVR_M64                         FDIVR_M32
> 	FDIV_M16I
> 
> and when I delete patch16 from sds.lib, I have the error message explaining
> that FDIV_R is missing. So my programm use only FDIV_R.
> 
> Patch16 take 2020 bytes in my exe. Thus I would like to delete in Patch16.obj
> what I don't need to reduce the size of my .exe.
> 
> I tryed to dissassemble it with obj2asm, but I can't reassemble only what I
> want to reduce the size (more than 100 error messages because some things are
> not defined)
> 
> How could I reduce the size of my exe, deleting or extracting what I want in
> Patch16.obj(for example)?
> 
> Thanks for help.

patch16.asm is a file originally supplied by Intel to workaround the pentium floating point bug. It probably isn't necessary at all unless you have such a chip. So I'd ensure you are not compiling anything with -fd

http://www.digitalmars.com/ctg/sc.html#dashfd
February 26, 2010
> patch16.asm is a file originally supplied by Intel to workaround the
> pentium floating point bug. It probably isn't necessary at all unless
> you have such a chip. So I'd ensure you are not compiling anything with -fd
> http://www.digitalmars.com/ctg/sc.html#dashfd

I don't use any Intel chip. (I don't have a coproccessor).
I compile whith the arguments: -2 -Pz -Jm -R -Ab -gg -msd -o+space -Nc

If my programm doesn't need patch16, how could I disable its utilisation? (when I delete it from sds.lib, It doesn't compile because it lack FDIV_R)

Thanks for help (and sorry for my bad english)

March 12, 2010
veb wrote:
>> patch16.asm is a file originally supplied by Intel to workaround the
>> pentium floating point bug. It probably isn't necessary at all unless
>> you have such a chip. So I'd ensure you are not compiling anything with -fd
>> http://www.digitalmars.com/ctg/sc.html#dashfd
> 
> I don't use any Intel chip. (I don't have a coproccessor).
> I compile whith the arguments: -2 -Pz -Jm -R -Ab -gg -msd -o+space -Nc
> 
> If my programm doesn't need patch16, how could I disable its utilisation? (when I
> delete it from sds.lib, It doesn't compile because it lack FDIV_R)
> 
> Thanks for help (and sorry for my bad english)
> 

One way is to rebuild sds.lib to without -fd. Another way is to look in sds.lib and remove the module that references FDIV_R. A third way is to provide your own FDIV_R function.