Date: Thu, 16 May 2002 18:03:22 -0700 From: Albert Kinderman <albert.kinderman@csun.edu> To: freebsd-hackers@freebsd.org Subject: c++ and dlerror(): Linux vs FreeBSD Message-ID: <3CE456DA.8010200@csun.edu>
next in thread | raw e-mail | index | archive | help
Disclaimer: I am not a programmer! I am trying to compile scribus-0.7.2, a Page Layout program, built against qt3. /usr/ports/print/scribus contains scribus-0.5, which is the qt2 version. On my Debian GNU/Linux, make works without a hitch. On my FreeBSD stable box, I get a series of errors of the following type: scribus.cpp:4217: assignment to `char *' from `const char *' discards qualifiers scribus.cpp: In method `int ScribusApp::DLLType(QString)': scribus.cpp:4240: assignment to `char *' from `const char *' discards qualifiers *** Error code 1 Stop in /usr/local/scribus-0.7.2/scribus These errors come from code similar to code that is given as an example of how to handle exceptions in the Linux man page for dlerror, /usr/compat/linux/man/man3/dlopen.3 Specifically, the last error was produced by int ScribusApp::DLLType(QString name) { void *mo; char *error; typedef int (*sdem0)(); sdem0 demo; QString pfad = PREL; pfad += "/share/scribus/plugins/" + name; mo = dlopen(pfad, RTLD_LAZY); if (!mo) return 0; dlerror(); demo = (sdem0)dlsym(mo, "Type"); if ((error = dlerror()) != NULL) <-- line 4240 { dlclose(mo); return 0; } int an = (*demo)(); dlclose(mo); return an; } Both the FreeBSD and the Linux man pages list const char *dlerror(void) Why does c++ on FreeBSD produce an error on error = dlerror() and c++ on Debian Linux does not? What is the proper fix? Al -- Albert Kinderman California State University, Northridge Department of Systems and Operations Management To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3CE456DA.8010200>