X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-posix%2Fsb-posix.asd;h=3902c119ece33b01ddb8693a52b4d2b8d6a9dd14;hb=192731b882467a9014b64b1eb097c8000441da31;hp=3fead6adac49912c3ff1d5c056ec2b911f381c3f;hpb=126e0a851c7e170b13c206c530083fc48572ea60;p=sbcl.git diff --git a/contrib/sb-posix/sb-posix.asd b/contrib/sb-posix/sb-posix.asd index 3fead6a..3902c11 100644 --- a/contrib/sb-posix/sb-posix.asd +++ b/contrib/sb-posix/sb-posix.asd @@ -33,11 +33,12 @@ (unless (zerop (run-shell-command "gcc ~A -o ~S ~{~S ~}" - (if (sb-ext:posix-getenv "LDFLAGS") - (sb-ext:posix-getenv "LDFLAGS") - #+sunos "-shared -lresolv -lsocket -lnsl" - #+darwin "-bundle" - #-(or darwin sunos) "-shared") + (concatenate 'string + (sb-ext:posix-getenv "EXTRA_LDFLAGS") + " " + #+sunos "-shared -lresolv -lsocket -lnsl" + #+darwin "-bundle" + #-(or darwin sunos) "-shared") dso-name (mapcar #'unix-name (mapcan (lambda (c) @@ -54,9 +55,11 @@ (defmethod perform ((op compile-op) (c c-source-file)) (unless (= 0 (run-shell-command "gcc ~A -o ~S -c ~S" - (if (sb-ext:posix-getenv "CFLAGS") - (sb-ext:posix-getenv "CFLAGS") - "-fPIC") + (concatenate + 'string + (sb-ext:posix-getenv "EXTRA_CFLAGS") + " " + "-fPIC") (unix-name (car (output-files op c))) (unix-name (component-pathname c)))) (error 'operation-error :operation op :component c))) @@ -68,11 +71,12 @@ (let ((co (make-instance 'compile-op))) (let ((filename (car (output-files co c)))) #+cmu (ext:load-foreign filename) - #+sbcl (sb-alien:load-1-foreign filename)))) - + #+sbcl (sb-alien:load-shared-object filename)))) (defsystem sb-posix :depends-on (sb-grovel) + #+sb-building-contrib :pathname + #+sb-building-contrib "SYS:CONTRIB;SB-POSIX;" :components ((:file "defpackage") (:file "designator" :depends-on ("defpackage")) (:unix-dso "alien" @@ -95,5 +99,21 @@ (operate 'test-op 'sb-posix-tests)) (defmethod perform ((o test-op) (c (eql (find-system :sb-posix-tests)))) - (or (funcall (intern "DO-TESTS" (find-package "SB-RT"))) - (error "test-op failed"))) + (funcall (intern "DO-TESTS" (find-package "SB-RT"))) + (let ((failures (funcall (intern "PENDING-TESTS" "SB-RT"))) + (ignored-failures (loop for sym being the symbols of :sb-posix-tests + if (search ".ERROR" (symbol-name sym)) + collect sym))) + (cond + ((null failures) + t) + ((null (set-difference failures ignored-failures)) + (warn "~@") + t) + (t + (error "non-errno tests failed!")))))