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