🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.sun
Article #14266

Bug in ld of SunOS 4.1.4. / Solaris 1.1.2

#14266
From: Frank Braun
Date: Wed, 26 Feb 1997 00:00
131 lines
3896 bytes
H�!

I work under SunOS 4.1.4 2 sun4m
with gcc 2.7.2.1

- I link a called lib.so File to two different other .so Files.
- These different other .so Files shall be loaded one after another
  by a main-prg. 
- In trying to load the second of the two different .so Files I get
  following error:

        ld.so: conflicting usage of dlopen'ed dependents

There is no problem on a sun3 under SunOs 4.1,
so it's obvious, that sun4 dynamicl loader has a problem.

No problem on

SunOS kussun1 4.1.1 2 sun3

but on 

SunOS kussun2 4.1.2 2 sun4c
error: ld.so: conflicting usage of dlopen'ed dependents


Does somebody know, if this problem is known?
Exists even a patch?

If not: 
1.) what can I do to work around?
2.) Is there a way to inform sun about the error?
    I couldn't find an entry on there homepage to to so.
   They don't offer free support. (My university don't get support)
3.) Is there a possiblity to initiate a patch or is there no support
     of  Solaris 1.1.2 since Solaris 2 exists?


To give you the possibilty to test if it works on your system there is
a small test -prg and makefile. Please let me know on what SunOS you
tested it and what happend.

Thank you very much for helping.

Greetings

                Frank.

EMail: fbraun@rz.uni-sb.de

Example:
---------------------------------------------
Makefile:
---------------------------------------------
CCC  = g++
CCFLAGS = -g -fPIC
LDFLAGS = -Wl,-assert,pure-text,-assert,nodefinitions -shared
-nostdlib

dummy: testso.o libsimaov.so.0.0 regist.so id_AO.so tps

tps : tps.cc
   g++ -g -o tps tps.cc
regist.so : regist.o
  $(LINK.cc) -o $@ regist.o -L. -lsimaov
regist.o : regist.c
  $(COMPILE.cc) $*.c
id_AO.so : id_AO.o
  $(LINK.cc) -o $@ id_AO.o -L. -lsimaov
id_AO.o : id_AO.c
  $(COMPILE.cc) $*.c
libsimaov.so.0.0 : testso.o
  $(LINK.cc) -o $@ testso.o
testso.o  : testso.c
  $(COMPILE.cc) testso.c
---------------------------------------------
testso.c
--------------------------------------------
testso() {
  return 0;
}
---------------------------------------------
id_AO.c
---------------------------------------------
_id_AO(void *slr, long tabsw)
{
    return(0);
}
---------------------------------------------
regist.c
---------------------------------------------
_regist(void *slr, long tabsw)
{
    return(0);
}
---------------------------------------------
tps.cc
---------------------------------------------
#include <dlfcn.h>
#include <stdio.h>

#define NULL 0

main()
{
        // kleines Program das dynam. Funktionen laedt
        void *fct1 = NULL;
        void *fct2 = NULL;
        void (*func) ();
        char*   fname1 = "regist.so";   // wird zuerst geladen
        char*   fname2 = "id_AO.so";    // wird als zweites geladen

        printf("Lade %s \n",fname1);
        if ( (fct1 = dlopen(fname1,1)) == NULL )
                printf("beim Laden von %s: %s\n",fname1,dlerror());

        printf("Lade %s \n",fname2);
        if ( (fct2 = dlopen(fname2,1)) == NULL )
                printf("beim Laden von %s: %s\n",fname2,dlerror());

        printf("Prg.-Ende\n");
}
 

-------------------END OF MESSAGE-------------------




EMail: fbraun@rz.uni-sb.de
Technical Details
Message-ID: <331372da.12150184@nntp.rz.uni-sb.de>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII
X-Google-Thread: f6653,4cd3664aeb214f5e,start
X-Google-Attributes: gidf6653,public
X-Google-Thread: 103ab4,4cd3664aeb214f5e,start
X-Google-Attributes: gid103ab4,public
X-Google-Thread: 10b379,4cd3664aeb214f5e,start
X-Google-Attributes: gid10b379,public
From: fbraun@rz.uni-sb.de (Frank Braun)
Subject: Bug in ld of SunOS 4.1.4. / Solaris 1.1.2
Date: 1997/02/26
Message-ID: <331372da.12150184@nntp.rz.uni-sb.de>
X-Deja-AN: 221459083
Organization: University of Saarland, Computing Center, Germany.
Newsgroups: comp.sys.sun,comp.sys.sun.misc,han.sys.sun