On Thu, 7 Jun 2001, Bang Jun-Young wrote:
On Wed, Jun 06, 2001 at 09:42:17AM -0700, Francois Gouget wrote:
I know but the only flags you check in the Linux case are one set of flags. You cannot assume that these are the only flags that will *ever* work on Linux and that these flags will *never* work on any other platform. What if tomorrow the Linux guys say 'what we have done until now is really broken, we should do like the UnixWare guys'? Your script won't check the flags used on UnixWare if you know you are on a Linux platform thus it will break while the original one would have kept on working.
That will never happen, I believe.
Maybe not with UnixWare, but that's not the point. Change is a fact of life.
[...]
Anyway, what you want is change the NetBSD flags. What about the following change:
[snipped]
It doesn't help much because:
- Code itself will never executed. Checking for Linux always succeeds on NetBSD 1.5 or later which are based on ELF.
So using the 'Linux' flags does not work. What are the symptoms? Is it just the link problem with winetest or is there other issues with the rest of Wine?
- NetBSD a.out support should be removed. Wine will never run on NetBSD 1.4 or earlier which lack kernel threads. They are no more actively maintained by core team.
Ok, seems reasonable.
[...]
Oops, I'm sorry. It wasn't a compilation error. I got number of linking errors with winetest:
perl.o(.text+0xc7f): undefined reference to `environ' perl.o(.text+0x4077): undefined reference to `environ' ... util.o(.text+0x794): undefined reference to `environ' ...
All of above object s are in lib/libperl.a.
Hmm, linking with libperl.a to get 'environ' seems wrong. 'environ' is a C library thing, it should be in a C library too. What does 'nm /usr/lib/libperl.a | grep -w environ' print? Here I get a number of U environ Which means environ is not defined in libperl (U=Undefined, i.e. get it elsewhere). Maybe the command that is issued for the link is wrong. Part of it is provided by perl itself which is supposed to know best. But here I had to create a symbolic link from '/usr/lib/libperl.so' to '/usr/lib/libperl.so.5.6.0' so I don't trust it entirely. What is the command that you get? If you add 'char** foo=environ;' somewhere in winclock.c, does it fail to compile too? What about a simple 'foo.c' program compiled outside of Wine?
Without -Bsymbolic, I had no problem.
Maybe but '-Bsymbolic' is very important for Wine and I doubt you will get a working Wine without it. But Alexandre is the real specialist who can explain why '-Bsymbolic' is needed.
-- Francois Gouget fgouget@free.fr http://fgouget.free.fr/ 1 + e ^ ( i * pi ) = 0