ports/129363: devel/ace build fails if kernel module aio is loaded
G. Paul Ziemba
p-fbsd-bugs at ziemba.us
Tue Dec 2 06:00:04 UTC 2008
>Number: 129363
>Category: ports
>Synopsis: devel/ace build fails if kernel module aio is loaded
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Tue Dec 02 06:00:04 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: G. Paul Ziemba
>Release: 7.1-PRERELEASE
>Organization:
>Environment:
FreeBSD hairball.ziemba.us 7.1-PRERELEASE FreeBSD 7.1-PRERELEASE #0: Tue Nov 18 13:50:14 PST 2008 root at hairball:/usr/obj/usr/src/sys/GPZ-081118 i386
>Description:
devel/ace (ace-5.5.2_2) build works OK if aio(4) is not loaded, but if aio kernel module is loaded, build fails when it attempts to compile tests/Proactor_Test.cpp.
This failure occurs because of inconsistency between code in POSIX_CB_Proactor.h (which leaves class ACE_POSIX_CB_Proactor undefined if defined (__FreeBSD__)) and code in Proactor_Test.cpp (which assumes it is defined). There is an identical situation with Proactor_Test_IPV6.cpp as well.
In the default case where kernel module aio(4) is not loaded, the ACE configure script does not detect the presence of aio and therefore leaves ACE_HAS_AIO_CALLS undefined. In this case, the test code in Proactor_Test.cpp and Proactor_Test_IPV6.cpp is not compiled, and there is no build failure.
>How-To-Repeat:
# kldload aio
# cd /usr/ports/devel/ace
# make clean && make
>Fix:
The attached patch qualifies the relevant code blocks with "!defined(__FreeBSD__)" to make them consistent with POSIX_CB_Proactor.h.
Patch attached with submission follows:
--- tests/Proactor_Test.cpp.orig 2006-04-20 00:41:47.000000000 -0700
+++ tests/Proactor_Test.cpp 2008-12-01 11:00:05.000000000 -0800
@@ -253,7 +253,7 @@
break;
# endif /* sun */
-# if !defined(__Lynx__)
+# if !defined(__Lynx__) && !defined (__FreeBSD__)
case CB:
ACE_NEW_RETURN (proactor_impl,
ACE_POSIX_CB_Proactor (max_op),
--- tests/Proactor_Test_IPV6.cpp.orig 2006-04-20 00:41:47.000000000 -0700
+++ tests/Proactor_Test_IPV6.cpp 2008-12-01 17:40:59.000000000 -0800
@@ -253,7 +253,7 @@
break;
# endif /* sun */
-# if !defined(__Lynx__)
+# if !defined(__Lynx__) && !defined(__FreeBSD__)
case CB:
ACE_NEW_RETURN (proactor_impl,
ACE_POSIX_CB_Proactor (max_op),
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list