From owner-freebsd-bugs Sat Aug 2 09:40:04 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id JAA00819 for bugs-outgoing; Sat, 2 Aug 1997 09:40:04 -0700 (PDT) Received: (from gnats@localhost) by hub.freebsd.org (8.8.5/8.8.5) id JAA00801; Sat, 2 Aug 1997 09:40:02 -0700 (PDT) Resent-Date: Sat, 2 Aug 1997 09:40:02 -0700 (PDT) Resent-Message-Id: <199708021640.JAA00801@hub.freebsd.org> Resent-From: gnats (GNATS Management) Resent-To: freebsd-bugs Resent-Reply-To: FreeBSD-gnats@FreeBSD.ORG, livio@csl.sri.com Received: (from nobody@localhost) by hub.freebsd.org (8.8.5/8.8.5) id JAA00709; Sat, 2 Aug 1997 09:37:29 -0700 (PDT) Message-Id: <199708021637.JAA00709@hub.freebsd.org> Date: Sat, 2 Aug 1997 09:37:29 -0700 (PDT) From: livio@csl.sri.com To: freebsd-gnats-submit@FreeBSD.ORG X-Send-Pr-Version: www-1.0 Subject: bin/4216: dlsym returns null Sender: owner-freebsd-bugs@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk >Number: 4216 >Category: bin >Synopsis: dlsym returns null >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-bugs >State: open >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Aug 2 09:40:01 PDT 1997 >Last-Modified: >Originator: livio ricciulli >Organization: sri International >Release: 2.2-970422-RELENG2.2-970422-RELENG >Environment: FreeBSD hyacinth.csl.sri.com 2.2-970422-RELENG FreeBSD 2.2-970422-RELENG #0: Thu Apr 24 14:29:18 PDT 1997 gilham@hyacinth.csl.sri.com:/usr/src/sys/compile/HYACINTH i386 >Description: dlsym returns null pointer on FreeBSD system while exact same function works on both Linux and SunOs. >How-To-Repeat: here is the culprit.. spawn_thread(thread,path) int thread; char *path; { char *error; threadtable[thread].handle = dlopen (path, 1); if (!threadtable[thread].handle) { fputs (dlerror(), stderr); exit(1); } printf("Spawning thread %d with entry point %s\n",thread,threadtable[thread].argv[0]); threadtable[thread].main_fun=dlsym(threadtable[thread].handle, threadtable[thread].argv[0]); if ((error = dlerror()) != NULL) { fputs(error, stderr); exit(1); } threadtable[thread].main_fun(threadtable[thread].argc, threadtable[thread].argv); } >Fix: I do not know why this does not work.. >Audit-Trail: >Unformatted: