Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Dec 2008 05:58:07 GMT
From:      "G. Paul Ziemba" <p-fbsd-bugs@ziemba.us>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/129363: devel/ace build fails if kernel module aio is loaded
Message-ID:  <200812020558.mB25w7hB024216@www.freebsd.org>
Resent-Message-ID: <200812020600.mB2604bP016246@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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@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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200812020558.mB25w7hB024216>