Hi,

Please find attached an updated patch for lam. It includes two more
things:
- a correct detection of the OS for the romio/ subdir
- correctly link liblamio.so.4.0 with -lrt (need for adio ufs) on 
  kfreebsd-gnu

Bye,
Aurelien


-- 
  .''`.  Aurelien Jarno             | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   [EMAIL PROTECTED]         | [EMAIL PROTECTED]
   `-    people.debian.org/~aurel32 | www.aurel32.net
Author: Petr Salinger <[EMAIL PROTECTED]>, Aurelien Jarno <[EMAIL PROTECTED]>
Status: in BTS

diff -u lam-7.1.1/debian/rules lam-7.1.1/debian/rules
--- lam-7.1.1/debian/rules
+++ lam-7.1.1/debian/rules
@@ -48,6 +48,7 @@
 
 export DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
 export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+export DEB_HOST_GNU_SYSTEM ?= $(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM)
 
 ARCHT:=$(shell echo $(DEB_HOST_GNU_TYPE) | cut -f1 -d-)
 OPTFLAGS:=
@@ -162,7 +163,14 @@
        mkdir tmp
        cd tmp && echo $(addprefix ../,$<) | xargs -t -n 1 ar x && rm -f $(ERM)
        mkdir -p $(@D)
+
+ifeq ($(DEB_HOST_GNU_SYSTEM),kfreebsd-gnu)
+# aio is enable by default on GNU/kFreeBSD, because of UFS support
+       $(CC) -shared -Wl,-soname=$(@F:.$(VER)=.$(SO)) -o $@ tmp/*.o -L$(LDIR) 
-llam -lutil -lrt
+else
        $(CC) -shared -Wl,-soname=$(@F:.$(VER)=.$(SO)) -o $@ tmp/*.o -L$(LDIR) 
-llam -lutil
+endif
+       
        rm -rf tmp
 
 $(LDIR)/liblam++.so.$(VER): $(SHLDIR)/liblammpi++.a $(LDIR)/liblam.so
--- lam-7.1.1.orig/romio/adio/ad_nfs/ad_nfs_wait.c
+++ lam-7.1.1/romio/adio/ad_nfs/ad_nfs_wait.c
@@ -106,7 +106,7 @@
 /* DEC, SGI IRIX 5 and 6 */
     if ((*request)->queued) {
        do {
-           err = aio_suspend((const aiocb_t **) &((*request)->handle), 1, 0);
+           err = aio_suspend((const struct aiocb **) &((*request)->handle), 1, 
0);
        } while ((err == -1) && (errno == EINTR));
 
        if (err != -1) {
--- lam-7.1.1.orig/romio/adio/ad_ufs/ad_ufs_wait.c
+++ lam-7.1.1/romio/adio/ad_ufs/ad_ufs_wait.c
@@ -107,7 +107,7 @@
 /* DEC, SGI IRIX 5 and 6 */
     if ((*request)->queued) {
        do {
-           err = aio_suspend((const aiocb_t **) &((*request)->handle), 1, 0);
+           err = aio_suspend((const struct aiocb **) &((*request)->handle), 1, 
0);
        } while ((err == -1) && (errno == EINTR));
 
        if (err != -1) {
--- lam-7.1.1.orig/romio/util/tarch
+++ lam-7.1.1/romio/util/tarch
@@ -94,6 +94,7 @@
         next)            FARCH=NeXT ; break ;; 
        KSR1|KSR2)       FARCH=ksr ; break ;;   
         FreeBSD)         FARCH=freebsd ; break ;;
+        GNU/kFreeBSD)    FARCH=freebsd ; break ;;
         OpenBSD)         FARCH=openbsd ; break ;;
         NetBSD)          FARCH=netbsd ; break ;;
        i386)            GARCH=ipsc2 ;;

Reply via email to