Package: icebox
Version: 3.2.0-3
Severity: normal
Tags: patch

On a 2.4 kernel, icebox gives an error:

  $ icebox --Ice.Config=config_service
  [ 03/26/07 14:36:59.623 Network: attempting to bind to tcp socket 
127.0.0.1:9998 ]
  [ 03/26/07 14:36:59.623 Network: accepting tcp connections at 127.0.0.1:9998 ]
  [ 03/26/07 14:36:59.624 Network: stopping to accept tcp connections at 
127.0.0.1:9998 ]
  03/26/07 14:36:59.624 error: ServiceManager: ThreadPool.cpp:64: 
Ice::SocketException:
  socket exception: Function not implemented

This is due to the use of epoll, which was added in ice 3.2.0 but is only
supported by linux 2.5.44 and higher:

  $ strace icebox --Ice.Config=config_service 2>&1 | grep epoll
  epoll_create(1)                         = -1 ENOSYS (Function not implemented)

To work around this for now, I've added -DICE_NO_EPOLL to
debian/patches/add-common-flags.patch (attached).  So far this seems
to work.  Having it fall back to normal poll when epoll returns ENOSYS
would probably be a better solution.

-jim


-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.4.32
Locale: LANG=POSIX, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

Versions of packages icebox depends on:
ii  libc6                        2.3.6.ds1-8 GNU C Library: Shared libraries
ii  libgcc1                      1:4.1.1-21  GCC support library
ii  libicebox32                  3.2.0-3     IceBox service libraries
ii  libiceutil32                 3.2.0-3     Ice for C++ misc utility library
ii  libstdc++6                   4.1.1-21    The GNU Standard C++ Library v3
ii  libzeroc-ice32               3.2.0-3     Ice for C++ runtime library

icebox recommends no packages.

-- no debconf information
diff -Nur zeroc-ice-3.2.0/config/Make.rules.Linux 
zeroc-ice-3.2.0.new/config/Make.rules.Linux
--- zeroc-ice-3.2.0/config/Make.rules.Linux     2007-01-15 16:49:09.000000000 
+0100
+++ zeroc-ice-3.2.0.new/config/Make.rules.Linux 2007-03-22 23:27:39.000000000 
+0100
@@ -83,7 +83,7 @@
       lp64suffix       = 64
    endif
 
-   CXXFLAGS            = $(CXXARCHFLAGS) -ftemplate-depth-128 -Wall 
-D_REENTRANT
+   CXXFLAGS            = $(CXXARCHFLAGS) -ftemplate-depth-128 -Wall 
-D_REENTRANT -DHAVE_ENDIAN_H -DHAVE_LIMITS_H -DICE_NO_EPOLL
 
    ifeq ($(STATICLIBS),)
       CXXFLAGS         += -fPIC

Reply via email to