Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Feb 1995 14:21:36 +0300
From:      "Andrey A. Chernov, Black Mage" <ache@astral.msk.su>
To:        Nate Williams <nate@trout.sri.MT.net>, "Rodney W. Grimes" <rgrimes@gndrsh.aac.dev.com>
Cc:        current@freefall.cdrom.com
Subject:   Re: libcompat and shlib conflict
Message-ID:  <MH0j7Ilec2@astral.msk.su>
In-Reply-To: <199502200534.WAA01333@trout.sri.MT.net>; from Nate Williams at Sun, 19 Feb 1995 22:34:04 -0700
References:  <199502200534.WAA01333@trout.sri.MT.net>

next in thread | previous in thread | raw e-mail | index | archive | help
In message <199502200534.WAA01333@trout.sri.MT.net> Nate Williams
    writes:

>[ Multiple definitions of regerror() in libcompat ]

>> >  However, the newest ld is giving me errors trying to build
>> > libcompat (correctly so) with multiple definitions of the function
>> > regerror(), which is defined in both libcompat/4.3/regex.c and
>> > libcompat/regexp/regerror.c.

>Does anyone know what should be done here?  NetBSD just ignores the
>problem by not making a shared library.  The problem still exists though
>since at link time I'm not sure which version of regerror() will get
>used, and a quick perusal of the code makes it obvious that they can't
>be combined into one function.  I'm sure the function that is first
>found would be the first function linked in, but that could change
>depending on the other functions in the library and tsort.

>We either need to completely remove one of the functions, or ignore the
>problem and only build a static library which avoids the error at the
>cost of later problems in code.  (But, I suppose folks shouldn't be
>using the compat libraries anyway, right. :( )

>What say you?

There is historically two regex interfaces: regexp & regex.
_Both_ have regerror(), it is right.
Only _one_ interface can be picked. If you pick regex module,
you pick regerror() too from same file. Be shure that
your regerror() call not first call in pgm in this case.
If you pick regexp module,
regerror() from there must be first in library.
Current tsort does just right thing placing it first.
I just build libcompat without any problems.

Maybe better variant will be to merge both regerror() function
into one function which is ruled by setting global variables
into regex & regexp.
-- 
Andrey A. Chernov        : And I rest so composedly,  /Now, in my bed,
ache@astral.msk.su       : That any beholder  /Might fancy me dead -
FidoNet: 2:5020/230.3    : Might start at beholding me,  /Thinking me dead.
RELCOM Team,FreeBSD Team :         E.A.Poe         From "For Annie" 1849



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