🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Frank Braun Wed, 26 Feb 1997 00:00
Bug in ld of SunOS 4.1.4. / Solaris 1.1.2
#14266
Author: 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
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads