BTW: the 'Parallelism'-check worked just fine in an older port, make-3.79.1.

Bye, Jojo

From: Schmitz, Joachim
Sent: Thursday, September 09, 2010 2:44 PM
To: 'bug-make@gnu.org'
Cc: 'autoconf-patc...@gnu.org'
Subject: Porting make to HP NonStop

Hi there

I just tried to port make-3.82 to HP-Nonstop. I got it to work (almost) with 
the following minor changes:

diff -u ./arscan.c.orig ./arscan.c
--- ./arscan.c.orig     2010-07-12 20:20:32.000000000 -0500
+++ ./arscan.c  2010-09-08 02:32:44.000000000 -0500
@@ -253,7 +253,7 @@
 #endif

 #ifndef WINDOWS32
-# ifndef __BEOS__
+# if !defined(__BEOS__) && !defined(__TANDEM)
 #  include <ar.h>
 # else
    /* BeOS 5 doesn't have <ar.h> but has archives in the same format
diff -u ./config/config.sub.orig ./config/config.sub
--- ./config/config.sub.orig    2010-07-28 00:42:11.000000000 -0500
+++ ./config/config.sub 2010-09-08 02:14:41.000000000 -0500
@@ -860,6 +860,9 @@
        np1)
                basic_machine=np1-gould
                ;;
+       nse-tandem)
+               basic_machine=nse-tandem
+               ;;
        nsr-tandem)
                basic_machine=nsr-tandem
                ;;
diff -u ./make.h.orig ./make.h
--- ./make.h.orig       2010-07-20 08:12:06.000000000 -0500
+++ ./make.h    2010-09-09 06:17:32.000000000 -0500
@@ -28,6 +28,13 @@

 #define _GNU_SOURCE 1

+#ifdef __TANDEM
+#include <floss.h>
+/* we have it but it somehow behaves differently from what 'make check' expects
+*/
+#undef HAVE_REALPATH
+#endif
+
 /* AIX requires this to be the first thing in the file.  */
 #if HAVE_ALLOCA_H
 # include <alloca.h>
@@ -37,7 +44,11 @@
 # else
 #  if !defined(__GNUC__) && !defined(WINDOWS32)
 #   ifndef alloca /* predefined by HP cc +Olibcalls */
+#ifdef __STDC__
+void *alloca ();
+#else
 char *alloca ();
+#endif
 #   endif
 #  endif
 # endif


Remaining issue is that 'make check' fails in the parallelism:
$ make check
...
 check. features/parallelism .................................... Error running 
/usr/local/Floss/make-3.82/tests/../make (expected 0; got 14): 
/usr/local/Floss/make-3.82/tests/../make -f work/features/parallelism.mk.2 -j4

Caught signal 14!
FAILED (6/8 passed)
...

Running the tests manually shows:

$ cd tests
$ sh work/features/parallelism.run.2
THREE.inc
ONE.inc
TWO.inc
ONE
TWO
THREE
Success
$

Looks like this is not the expected order? No idea why that is though.  It may 
have to do with the architecture of an HP-NonStop machine, which is more like a 
cluster than a single (SMP) machine. Any hints to get it to work are more than 
welcome.

Also I haven't yet fully understood why realpath failed the 'make check' step, 
when HAVE_REALPATH was in effect, maybe our realpath() API behaves slightly 
different then the one from other vendors. Disabling if as per the first chunk 
of the last patch is good enough for me though.

I'd like at least the first two patches and the last chunk of the last patch to 
get accepted into the make source.
The second patch might need to go to the autoconf folks too ('configure' is 
version 2.65), hence the CC.

Bye, Jojo
Joachim Schmitz
NonStop and Neoview Support Expert
Global Customer Support Center (GCSC)
Europe, Middle East, Africa
Hewlett-Packard GmbH

+49 69 95307-561 / Phone
+49 2102 90-8510 / Fax
schm...@hp.com / Email
Berliner Str. 111
40591 Ratingen
Germany

[cid:image001.gif@01CB502E.8DF3BD70]<http://www.hp.com/>

Please consider the environment before printing this email.

<<inline: image001.gif>>

_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to