Mail Archives: cygwin/2001/05/23/10:10:16
--429728448-1438512500-990625842=:2874
Content-Type: TEXT/PLAIN; charset=ISO-8859-2
Content-Transfer-Encoding: 8BIT
Hi!!
I'm new to the list, but I searched archives looking for a solution and
found nothing.
I have TWO questions, but it's the same problem.
First is -rdynamic swich for gcc. it's used to export symbols for shared
objects and the second is about linking shared objects (.dll) with symbols
declared as external.
Let's see following code:
---main.c---
#include <dlfcn.h>
#include <stdio.h>
int c;
main () {
int (*foo)();
void *handler = dlopen ("./foo.so", RTLD_LAZY|RTLD_GLOBAL);
if (!handler) {
fputs (dlerror(), stderr);
printf("\n");
exit(1);
}
foo = dlsym(handler,"foo");
(*foo)();
dlclose(handler);
}
---main.c---
and following shared object source:
---foo.c---
//extern int c;
foo () {
printf("Fooo!\n");
// printf("c=%i\n",c);
}
---foo.c---
If I compile it under Unix or windows (under Win using attached shell
script -- refering to the documentation) everything is OK. But WHAT I have
to do to get it working with foo looking like this:
---foo.c---
extern int c;
foo () {
printf("Fooo!\n");
printf("c=%i\n",c);
}
---foo.c---
Under Unix I used to compile main:
gcc main.c -o main -ldl -rdynamic
(to export symbols to dynamically dlopened shared objects), and foo:
gcc -shared foo.c -o foo.so
First of all -rdynamic does not work under cygwin and moreover ld fails
linking shared objects with symbols declared as external.
Any suggestions???
Regards,
--
Mariusz Wołoszyn
Internet Security Specialist, Internet Partners
--429728448-1438512500-990625842=:2874
Content-Type: APPLICATION/x-sh; name="ll.sh"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine DOT LNX DOT 4 DOT 04 DOT 10105231550420 DOT 2874 AT dzyngiel DOT ipartners DOT pl>
Content-Description:
Content-Disposition: attachment; filename="ll.sh"
DQojISAvYmluL3NoDQojICBFeGFtcGxlIFNjcmlwdCB0byBjb21waWxlIGFu
ZCBsaW5rIGEgcmVsb2NhdGFibGUgRExMDQojICAgIEZpbGVzIHRoYXQgbWFr
ZSB1cCB0aGUgRExMID0gJGZvby5jICBpbml0LmNjIGZpeHVwLmMuDQojICAg
ICAgICAoaW5pdC5jYyBhbmQgZml4dXAuYyBhcmUgaG91c2VrZWVwaW5nIHJv
dXRpbmVzIG5lZWRlZCBmb3IgdGhlIERMTC4gVGhlIGFjdHVhbA0KIyAgICAg
ICAgICAgICAgICAgICAgICBsaWJyYXJ5IHJvdXRpbmVzIGFyZSBpbiAkZm9v
LmMgYW5kICkNCiMgKioqRmlsbCBpbiB5b3VyIHBhdGggdG8gbGliY3lnd2lu
LmEgaGVyZSAod2l0aCBubyB0cmFpbGluZyBzbGFzaCkqKioNCkxJQlBBVEg9
L2xpYg0KDQplY2hvICJDb21waWxpbmciIGBiYXNlbmFtZSAkMSAuY2AiLmRs
bCINCg0KZm9vPSJgYmFzZW5hbWUgJDEgLmNgIg0KDQplY2hvICRmb28NCg0K
IyBDb21waWxlIHNvdXJjZSBmaWxlczoNCmdjYyAtYyAkZm9vLmMNCmdjYyAt
YyBpbml0LmNjDQpnY2MgLWMgZml4dXAuYw0KDQojIE1ha2UgLmRlZiBmaWxl
Og0KZWNobyBFWFBPUlRTID4gJGZvby5kZWYNCm5tICRmb28ubyAgaW5pdC5v
IGZpeHVwLm8gfCBncmVwICdeLi4uLi4uLi4gW1RdIF8nIHwgc2VkICdzL1te
X10qXy8vJyA+PiAkZm9vLmRlZg0KDQojIExpbmsgRExMLg0KbGQgLS1iYXNl
LWZpbGUgJGZvby5iYXNlIC0tZGxsIC1vICRmb28uZGxsICRmb28ubyAgaW5p
dC5vIGZpeHVwLm8gXA0KICRMSUJQQVRIL2xpYmN5Z3dpbi5hIC9saWIvdzMy
YXBpL2xpYmtlcm5lbDMyLmEgLWUgX2RsbF9lbnRyeUAxMg0KZGxsdG9vbCAt
LWFzPWFzIC0tZGxsbmFtZSAkZm9vLmRsbCAtLWRlZiAkZm9vLmRlZiAtLWJh
c2UtZmlsZSAkZm9vLmJhc2UgLS1vdXRwdXQtZXhwICRmb28uZXhwDQpsZCAt
LWJhc2UtZmlsZSAkZm9vLmJhc2UgJGZvby5leHAgLS1kbGwgLW8gJGZvby5k
bGwgJGZvby5vICBpbml0Lm8gZml4dXAubyAgXA0KICAkTElCUEFUSC9saWJj
eWd3aW4uYSAvbGliL3czMmFwaS9saWJrZXJuZWwzMi5hIC1lIF9kbGxfZW50
cnlAMTINCmRsbHRvb2wgLS1hcz1hcyAtLWRsbG5hbWUgJGZvby5kbGwgLS1k
ZWYgJGZvby5kZWYgLS1iYXNlLWZpbGUgJGZvby5iYXNlIC0tb3V0cHV0LWV4
cCAkZm9vLmV4cA0KbGQgJGZvby5leHAgLS1kbGwgLW8gJGZvby5kbGwgJGZv
by5vICBpbml0Lm8gZml4dXAubyAgXA0KICRMSUJQQVRIL2xpYmN5Z3dpbi5h
IC9saWIvdzMyYXBpL2xpYmtlcm5lbDMyLmEgLWUgX2RsbF9lbnRyeUAxMg0K
DQojIEJ1aWxkIHRoZSAkZm9vLmEgbGliIHRvIGxpbmsgdG86DQpkbGx0b29s
IC0tYXM9YXMgLS1kbGxuYW1lICRmb28uZGxsIC0tZGVmICRmb28uZGVmIC0t
b3V0cHV0LWxpYiAkZm9vLmENCg0KIyBMaW5raW5nIHdpdGggbWFpbg0KI2dj
YyBtYWluLmMgJGZvby5hIC1vIG1haW4uZXhlDQoNCg==
--429728448-1438512500-990625842=:2874
Content-Type: text/plain; charset=us-ascii
--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple
--429728448-1438512500-990625842=:2874--
- Raw text -