we use gcc on sparc as well.
This mdb module compiles and works fine with gcc & sparc.

When I add -shared on the x86 platform, I get...

     /bin/gcc     -L/vob/signalware/Master/library -m64 -fno-builtin
-DOMNI_UNIX -D_KERNEL -DMP_SSRV4  -DAMD64_ARCH -DSOL10 -I/vob/common/src
-I/vob/signalware/../common/src   -I. -I..
-I/vob/signalware//Master/Ft/inc -I/vob/signalware//Master/Ft/inc
-I/vob/signalware//Master/cust_inc -I/vob/signalware//Master/cust_inc
-I/vob/signalware//Master/priv_inc -I/vob/signalware//Master/priv_inc
-I../../../../libulcm/inc -I../../include -I/usr/X/include      -Wall
-std=gnu99 -O   -DAMD64_ARCH  -o mr_mdb.so mr_mdb.c    -G -shared
-mno-red-zone   -mcmodel=kernel 
Text relocation remains                         referenced
    against symbol                  offset      in file
<unknown>                           0x20        /var/tmp//cckausVW.o
<unknown>                           0x50        /var/tmp//cckausVW.o
<unknown>                           0x80        /var/tmp//cckausVW.o
<unknown>                           0xa8        /var/tmp//cckausVW.o
<unknown>                           0x860       /var/tmp//cckausVW.o
<unknown>                           0x870       /var/tmp//cckausVW.o
<unknown>                           0x878       /var/tmp//cckausVW.o
<unknown>                           0x888       /var/tmp//cckausVW.o
<unknown>                           0x898       /var/tmp//cckausVW.o
<unknown>                           0x8a0       /var/tmp//cckausVW.o
.
 .
  .
mdb_printf                          0x3a6       /var/tmp//cckausVW.o
mdb_printf                          0x3e4       /var/tmp//cckausVW.o
mdb_printf                          0x3ff       /var/tmp//cckausVW.o
mdb_printf                          0x417       /var/tmp//cckausVW.o
mdb_printf                          0x432       /var/tmp//cckausVW.o
mdb_printf                          0x44d       /var/tmp//cckausVW.o
mdb_printf                          0x468       /var/tmp//cckausVW.o
mdb_printf                          0x483       /var/tmp//cckausVW.o
mdb_printf                          0x50e       /var/tmp//cckausVW.o
mdb_printf                          0x529       /var/tmp//cckausVW.o
mdb_printf                          0x545       /var/tmp//cckausVW.o
mdb_printf                          0x560       /var/tmp//cckausVW.o
mdb_printf                          0x57c       /var/tmp//cckausVW.o
mdb_printf                          0x597       /var/tmp//cckausVW.o
mdb_printf                          0x5b3       /var/tmp//cckausVW.o
mdb_printf                          0x5cf       /var/tmp//cckausVW.o
mdb_printf                          0x5e0       /var/tmp//cckausVW.o
ld: fatal: relocations remain against allocatable but non-writable
sections
collect2: ld returned 1 exit status

-----Original Message-----
From: Dmitry.Samersoff at Sun.COM [mailto:dmitry.samers...@sun.com] 
Sent: Thursday, February 19, 2009 1:30 PM
To: William Reich
Cc: Jonathan Adams; mdb-discuss at opensolaris.org; Richmond Tuttle
Subject: Re: mdb dmod - compile with gcc on x86 ?

William,

Do you use gcc on sparc to build the module?
What kind of unresolved symbols -shared cause?

I think mdb has been build using Sun Studio compiler so it's better to
use Sun CC to build the module.

-Dmitry.


William Reich wrote:
>  
> on my compiler,  -fPIC and -mcmodel=kernel are not allowed together.
> The -shared option resulted on lots of unresolved symbols.
> 
> The -Xlinker "-G" resulted in the same relocation error...
> 
> I also tried the suggestion of Jonathan.  Same relocation error...
> ( I would have thought a mdb module was a kernel module... )
> 
> 
> wr
> 
> +++++++++++++++++++++++++++++++++++
> 
>>> /bin/gcc    -L/vob/signalware/Master/library -m64 -fno-builtin
>>> -DOMNI_UNIX \
>>> -D_KERNEL -DMP_SSRV4  -mno-red-zone \
>                           ^^^^^^^^^^^^^
>>> -mcmodel=kernel -DAMD64_ARCH -DSOL10 \
>     ^^^^^^^^^^^^^^^
> 
> Those are your problem;  this isn't a kernel module, so why are you 
> using the kernel model?
> 
> Cheers,
> - jonathan
> 
> 
> -----Original Message-----
> From: Dmitry.Samersoff at Sun.COM [mailto:Dmitry.Samersoff at Sun.COM]
> Sent: Thursday, February 19, 2009 1:05 PM
> To: William Reich
> Cc: Bhaskar.Sarkar at Sun.COM; mdb-discuss at opensolaris.org; Richmond 
> Tuttle
> Subject: Re: [mdb-discuss] mdb dmod - compile with gcc on x86 ?
> 
> William,
> 
> Try to change GCC command line:
> add  -fPIC -shared
> and replace -G to
> -Xlinker "-G"
> 
> 
> William Reich wrote:
>>  
>> my source does not contain a function named main().
>>
>> ...only has the external function _mdb_init().
>> All other functions in the file are static.
>>
>> wr
>>
>> -----Original Message-----
>> From: Bhaskar.Sarkar at Sun.COM [mailto:Bhaskar.Sarkar at Sun.COM]
>> Sent: Thursday, February 19, 2009 12:09 PM
>> To: William Reich
>> Cc: mdb-discuss at opensolaris.org; Richmond Tuttle
>> Subject: Re: [mdb-discuss] mdb dmod - compile with gcc on x86 ?
>>
>> William Reich wrote:
>>>  
>>> I am trying to compile a dmod for mdb using gcc on a 64bit x86 
>>> machine.
>>>
>>> The compile goes ok, but the resulting file does not load into mdb.
>>>
>>> Anybody know the solution to this puzzle ?
>>>
>>> thanks
>>>
>>> wr
>> You should not have a main() function in your module.
>> Your only interface to mdb is via _mdb_init()
>>
>> HIH,
>> Bhaskar
>>
>>> ++++++++++++
>>>
>>>
>>> /bin/gcc    -L/vob/signalware/Master/library -m64 -fno-builtin
>>> -DOMNI_UNIX \
>>>  -D_KERNEL -DMP_SSRV4  -mno-red-zone \  -mcmodel=kernel -DAMD64_ARCH

>>> -DSOL10 \
>>>   -I/vob/common/src      \
>>>   -Wall -std=gnu99 -O  -G -o mr_mdb.so mr_mdb.c   
>>>
>>>
>>>
>>> # mdb -k
>>> Loading modules: [ unix krtld genunix specfs dtrace cpu.generic
>>> cpu_ms.AuthenticAMD.15 uppc pcplusmp ufs mpt ip hook neti sctp a rp 
>>> usba fcp fctl nca lofs md cpc random crypto zfs fcip logindmux ptm 
>>> sppp nfs ipc ]
>>>
>>>> ::load ./mr_mdb.so
>>> mdb: ld.so.1: mdb: fatal: relocation error: R_AMD64_PC32: file
>>> ./mr_mdb.so: symbol main: value 0x28001df8e34 does not fit 
>>> _______________________________________________
>>> mdb-discuss mailing list
>>> mdb-discuss at opensolaris.org
>> _______________________________________________
>> mdb-discuss mailing list
>> mdb-discuss at opensolaris.org
> 
> 
> --
> Dmitry Samersoff
> J2SE Sustaining team, SPB04
> * There will come soft rains ...


--
Dmitry Samersoff
J2SE Sustaining team, SPB04
* There will come soft rains ...

Reply via email to