uname(1) on UnixWare (Solaris)

Francois Gouget fgouget at free.fr
Wed Jun 6 13:39:11 CDT 2001

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:
> 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 at free.fr        http://fgouget.free.fr/
                            1 + e ^ ( i * pi ) = 0

More information about the wine-devel mailing list