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