www.digitalmars.com         C & C++   DMDScript  

c++ - Manipulate .lib or .obj[optimisation again]

reply veb <vebveb hotmail.fr> writes:
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.
Feb 24 2010
parent reply Walter Bright <newshound1 digitalmars.com> writes:
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
Feb 25 2010
parent reply veb <vebveb hotmail.fr> writes:
 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)
Feb 26 2010
parent Walter Bright <newshound1 digitalmars.com> writes:
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.
Mar 11 2010