Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 84926 - hsfmodem uses deprecated EXPORT_SYMBOL_NOVERS, fails to build on recent linux kernels
Summary: hsfmodem uses deprecated EXPORT_SYMBOL_NOVERS, fails to build on recent linux...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High major (vote)
Assignee: Gentoo Dialup Developers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-03-11 19:19 UTC by Jordan Ritter
Modified: 2005-03-16 22:38 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jordan Ritter 2005-03-11 19:19:38 UTC
The hsfmodem source packaged with the ebuild references EXPORT_SYMBOL_NOVERS, which has been designated as deprecated, and removed completely from more recent 2.6 kernels.  

However, because the hsfmodem internal build process contained in ``hsfconfig'' hides both stdout and stderr, coupled with the fact that gcc 3.2.3 will emit a warning (not error) condition for prototypes that reference unknown return data types (in this case EXPORT_SYMBOL_NOVERS), it is not exposed to the user that gcc assigns a default return value of int and completes the compile anyway.  The result is that the modules don't link properly, returning errors like:

hsfengine: Unknown symbol cnxthsf_OsSleep
hsfengine: Unknown symbol cnxthsf_OsStrnCpy

etc.

I fixed this by editing the ``oscompat.h'' support file provided in ``/usr/lib/hsfmodem/GPL'', and adding the following line at the end, before the __cplusplus guard:

#define EXPORT_SYMBOL_NOVERS EXPORT_SYMBOL

and re-launching the ``hsfconfig'' process to build the appropriate kernel modules.  I did this based on the following post: 

http://www.ussg.iu.edu/hypermail/linux/kernel/0409.0/1938.html



Reproducible: Always
Steps to Reproduce:
1. emerge hsfmodem
2. run hsfconfig to compile the kernel modules

Actual Results:  
hsfconfig fails

Expected Results:  
hsfconfig succeeds and provides various details about the installed modem and 
driver

Portage 2.0.51.19 (default-linux/x86/2004.2, gcc-3.2.3, glibc-2.3.4.20040808-r1, 
2.6.11 i686)
=================================================================
System uname: 2.6.11 i686 Intel(R) Pentium(R) M processor 2.00GHz
Gentoo Base System version 1.4.16
Python:              dev-lang/python-2.3.4-r1 [2.3.4 (#1, Feb  8 2005, 12:08:09)
]
dev-lang/python:     2.3.4-r1
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.8.5-r3, 1.5, 1.7.9-r1, 1.6.3, 1.4_p6, 1.9.4
sys-devel/binutils:  2.15.92.0.2-r1
sys-devel/libtool:   1.5.10-r4
virtual/os-headers:  2.4.21-r1
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer -fstack-protector"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/
share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /
usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ 
/usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/
share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer -fstack-protector"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/Linux/
distributions/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage"
USE="x86 X acpi alsa arts avi berkdb bitmap-fonts cdr crypt cups curl dbm dvd 
emacs emboss encode f77 fam flac font-server foomaticdb fortran gdbm gif iconv 
imagemagick jpeg kde libg++ libwww mad mbox mikmod mmx mp3 mpeg ncurses nls oci8 
oggvorbis opengl oss pam pcmcia pdflib perl png python qt quicktime readline 
samba sdl sockets sse ssl sysvipc tcpd tetex tiff truetype truetype-fonts type1-
fonts usb userlocales xine xinerama xml2 xv zlib"
Unset:  ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, PORTDIR_OVERLAY
Comment 1 Alin Năstac (RETIRED) gentoo-dev 2005-03-16 13:15:27 UTC
fixed in hsfmodem-7.18.00.03-r1. please test it and reopen the bug if something
is wrong.
thanks for your help!
Comment 2 Alin Năstac (RETIRED) gentoo-dev 2005-03-16 22:38:13 UTC
I've removed patch for this problem. the original already have in oscompat.h following lines:

#ifndef EXPORT_SYMBOL_NOVERS
#define EXPORT_SYMBOL_NOVERS(x) EXPORT_SYMBOL(x)
#endif