Hi Przemek,

Currently harbour.dll is created with full symbol information.

About which symbols you are talking about. Debug information
(created by -g gcc compile time flag) or relocation and symbol
table?

I used to think of this as debug information, but I don't
use -g, so it might be relocation and symbol table.

It comes at the end of the file, it's about 500KB, and it
can be removed with GNU strip (strip harbour.dll).

I use L_USR=-s to request stripping for all binaries for the
final binary distribution to avoid that. But this flag is not
effective for harbour.dll, since it's done outside the GNU
make system.

L_USR is used for static libraries. The parameters accepted by
'ar' are different then the one used by 'gcc' when shared library
is created so we cannot use the same envvar.
If you need it then we can intorduce new envvar, f.e. SO_USR/SL_USR/
DL_USR which will be passed to gcc when shared library is created.
You can also use strip with -S or -s parameter to strip symbols from
existing DLL.
Anyhow please remember that most of symbols come from debug informations
(-g compiler switch) and it's enough to remove -g from C_USR and that
the relocation table cannot be safely removed in some systems.

Hm, I don't know, but I never see this GCC specific information
at the end of any production Windows binary files, so I wonder
why would we need it on harbour.dll only.

Can you change hb-func.sh to honor this setting, or if this is
not possible, do the stripping by other means?

It cannot be L_USR but as new envvar yes. I can add it and in such
case I think it should be also added to non GNU make systems.

Okay, new envvar is perfect.

As for the non-GNU make system, make_gcc.sh could use it indeed.

Brgds,
Viktor

_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to