bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

make 3.80 on Solaris 10 (x86)


From: Andreas M. Kirchwitz
Subject: make 3.80 on Solaris 10 (x86)
Date: Sun, 5 Dec 2004 00:39:59 +0100

Hello!

I've got some weird behaviour with GNU make 3.80 (the official
version from ftp.gnu.org) under recent versions of Solaris 10 (x86),
builds 63, 69, and 72 (didn't try older ones). Compilers were
Sun Studio 9, GCC 3.3.2 (sunfreeware.com), GCC 3.4.3 (self-compiled).

I've already searched the topics on the mailing list archives
of bug-make and help-make, but didn't find anything related.

My example Makefile is very simple:

        test:
                /bin/echo hello

That should print out something like:

        /bin/echo hello
        hello

My self-compiled "make" simply outputs "Abort". The make from
sunfreeware.com (compiled on a quite old version of Solaris 10)
runs fine and outputs what I expected.

I compared both makes with debug option (-d). The output is the
same up to the line:

        Must remake target `test'.

The self-compiled "make" now prints "Abort" and exists.
These are the last lines according to "truss -f":

        17086:  write(1, " M u s t   r e m a k e  ".., 27)      = 27
        17086:  sigaction(SIGABRT, 0x00000000, 0x08046AA0)      = 0
        17086:  sigaction(SIGABRT, 0x080469E0, 0x08046A60)      = 0
        17086:  schedctl()                                      = 0xFEE58000
        17086:  lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000) = 0xFFBFFEFF 
[0x0000FFFF]
        17086:  lwp_kill(1, SIGABRT)                            = 0
        17086:      Received signal #6, SIGABRT [default]
        17086:        siginfo: SIGABRT pid=17086 uid=123 code=-1

"truss -f -u *" shows a lot of calls to "libc:strchr()" and a final
"libc:abort()" right before the sigaction().

The "make" from sunfreeware.com prints:

        /bin/echo hello
        Putting child 0x0808c1b8 (test) PID 17046 on the chain.
        Live child 0x0808c1b8 (test) PID 17046 
        hello
        Got a SIGCHLD; 1 unreaped children.
        Reaping winning child 0x0808c1b8 PID 17046 
        Removing child 0x0808c1b8 PID 17046 from chain.
        Successfully remade target file `test'.

According to "truss -f -u *" it's very similar up to the
calls to libc:strchr(), but then there comes no libc:abort(),
but libc:free() and other stuff.

The output of "truss -f -u *" is several megabytes in size
so I better don't send it to the list. But anyone who wants
to see it, just let me know and I'll send it directly via mail.

I'm a little bit lost at the moment where to search for the
problem. Is it a problem in make? Or in Solaris 10? Any help
is welcome. ;-)

It looks like any make compiled on an old release of Solaris 10
(or an older distribution like Solaris 9) runs fine. But any make
compiled on a recent version of Solaris 10 behaves weird.

I don't have that much experience with Solaris 10 yet, but most
programs compile and run fine. If problems occur, they are usually
related to changes in system include files (thus, software doesn't
even compile).

        Greetings, Andreas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]