www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Ref to deh_end deh_beg

reply Barry Denton <basse42 yahoo.com> writes:
these obviously internal but keep coming on compile . often, we think something
missing on install like extern C ? .
have  tango-src-SNAPSHOT-20080308 , dmd 1.027 built with dsss 0.75

 nm Out
[davwk]$ nm  calcLoanRepayments.o
         U _D10ModuleInfo6__vtblZ
         U _D10TypeInfo_d6__initZ
         U _D10TypeInfo_i6__initZ
         U _D11BankAccount11BankAccount4RateFdZv
         U _D11BankAccount11BankAccount6getFeeFZd
         U _D11LoanAccount11LoanAccount5_ctorMFdZC11LoanAccount11LoanAccount
         U _D11LoanAccount11LoanAccount7__ClassZ
         U _D11TypeInfo_Aa6__initZ
00000000 V _D14TypeInfo_B3Aad6__initZ
00000000 V _D14TypeInfo_B3Aai6__initZ
         U _D14TypeInfo_Tuple6__vtblZ
00000060 D _D18calcLoanRepayments12__ModuleInfoZ
00000000 T _D18calcLoanRepayments18calcLoanRepayments4mainMFAAaZv
00000120 R _D18calcLoanRepayments18calcLoanRepayments6__initZ
00000150 R _D18calcLoanRepayments18calcLoanRepayments6__vtblZ
00000000 D _D18calcLoanRepayments18calcLoanRepayments7__ClassZ
         U _D5tango2io5Print12__T5PrintTaZ5Print5printMFYC5tango2io5Print12__T5PrintTaZ5Print
         U _D5tango2io5Print12__T5PrintTaZ5Print7newlineMFZC5tango2io5Print12__T5PrintTaZ5Print
         U _D5tango2io6Stdout12__ModuleInfoZ
         U _D5tango2io6Stdout6StdoutC5tango2io5Print12__T5PrintTaZ5Print
         U _D6Object7__ClassZ
         U _D6object6Object5opCmpMFC6ObjectZi
         U _D6object6Object6toHashMFZk
         U _D6object6Object8opEqualsMFC6ObjectZi
         U _D6object6Object8toStringMFZAa
         U _D9ClassInfo6__vtblZ
         U _D9invariant12_d_invariantFC6ObjectZv
         U _Dmodule_ref
00000010 r _TMP1
00000028 r _TMP2
00000040 r _TMP3
00000058 r _TMP4
00000078 r _TMP5
00000098 r _TMP6
000000b8 r _TMP7
000000e0 r _TMP8
         U _d_newclass
00000000 t gcc2_compiled.
00000048 d internal
00000050 d internal

-------------------------------------------------------------------------------------------------------
Compiler Out

[davwk]$ dsss build -oq  calcLoanRepayments.d
Default prefix /usr is unwritable, using /home/davwk/d instead.
calcLoanRepayments.d => calcLoanRepayments
+ /usr/bin/rebuild -Idsss_imports/ -I. -S./ -I/home/davwk/d/include/d
-S/home/davwk/d/lib/ -oq  -I/usr/include/d -S/usr/lib -I/home/davwk/d/include/d
-S/home/davwk/d/lib  -oqdsss_objs/D  calcLoanRepayments.d -ofcalcLoanRepayments
gcc dsss_objs/D/_calcLoanRepayments.o dsss_objs/D/_LoanAccount.o
dsss_objs/D/_BankAccount.o -o calcLoanRepayments -m32 -ltango-base-dmd
-ltango-user-dmd -lDD-tango-io -lDD-tango-sys -lDD-tango-stdc
-lDD-tango-sys-linux -lDD-tango-stdc -lDD-tango-io -lDD-tango-text
-lDD-tango-io -Xlinker -L./ -Xlinker -L/home/davwk/d/lib/ -Xlinker -L/usr/lib
-Xlinker -L/home/davwk/d/lib -ltango-user-dmd -ltango-user-dmd -ltango-base-dmd
-lpthread -lm
/usr/lib/gcc/i586-suse-linux-gnu/4.1.2/../../../libtango-base-dmd.a(deh2.o): In
function `_D4deh213__eh_finddataFPvZPS4deh213DHandlerTable':
deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x9): undefined
reference to `_deh_beg'
deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0xe): undefined
reference to `_deh_beg'
deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x14): undefined
reference to `_deh_end'
deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x37): undefined
reference to `_deh_end'
/usr/lib/gcc/i586-suse-linux-gnu/4.1.2/../../../libtango-base-dmd.a(dmain2.o):
In function `_D6dmain24mainUiPPaZi7runMainMFZv':
dmain2.d:(.text._D6dmain24mainUiPPaZi7runMainMFZv+0x10): undefined reference to
`_Dmain'
collect2: ld returned 1 exit status
--- errorlevel 1
Command /usr/bin/rebuild returned with code 65280, aborting.
Error: Command failed, aborting.
[davwk]$                                         
Mar 14 2008
next sibling parent Denton Cockburn <diboss hotmail.com> writes:
is main defined in multiple places somewhere in the compiled code?
Mar 14 2008
prev sibling parent reply Frits van Bommel <fvbommel REMwOVExCAPSs.nl> writes:
Barry Denton wrote:
 /usr/lib/gcc/i586-suse-linux-gnu/4.1.2/../../../libtango-base-dmd.a(deh2.o):
In function `_D4deh213__eh_finddataFPvZPS4deh213DHandlerTable':
 deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x9): undefined
reference to `_deh_beg'
 deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0xe): undefined
reference to `_deh_beg'
 deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x14):
undefined reference to `_deh_end'
 deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x37):
undefined reference to `_deh_end'
 /usr/lib/gcc/i586-suse-linux-gnu/4.1.2/../../../libtango-base-dmd.a(dmain2.o):
In function `_D6dmain24mainUiPPaZi7runMainMFZv':
 dmain2.d:(.text._D6dmain24mainUiPPaZi7runMainMFZv+0x10): undefined reference
to `_Dmain'

The last message means no valid main() was defined. The other symbols (_deh_beg and _deh_end) are automatically generated by the compiler when main() is compiled, so they will also disappear when main() is linked in. Your D program can't run without a valid main(). Valid declarations are: void main() { ... } void main(char[][] args) { ... } int main() { ... } int main(char[][] args) { ... } (see <http://www.digitalmars.com/d/1.0/function.html> or <http://www.digitalmars.com/d/2.0/function.html>, near the bottom) The calling convention must be extern(D), which is the default if none is specified. I'm not sure if D 2.0 accepts main(string[] args) instead, but in D 1.0 string[] is identical to char[][] and should be accepted. ('args' may have another name, of course)
Mar 14 2008
next sibling parent reply Barry Denton <basse42 yahoo.com> writes:
Frits van Bommel Wrote:

 Barry Denton wrote:
 /usr/lib/gcc/i586-suse-linux-gnu/4.1.2/../../../libtango-base-dmd.a(deh2.o):
In function `_D4deh213__eh_finddataFPvZPS4deh213DHandlerTable':
 deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x9): undefined
reference to `_deh_beg'
 deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0xe): undefined
reference to `_deh_beg'
 deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x14):
undefined reference to `_deh_end'
 deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x37):
undefined reference to `_deh_end'
 /usr/lib/gcc/i586-suse-linux-gnu/4.1.2/../../../libtango-base-dmd.a(dmain2.o):
In function `_D6dmain24mainUiPPaZi7runMainMFZv':
 dmain2.d:(.text._D6dmain24mainUiPPaZi7runMainMFZv+0x10): undefined reference
to `_Dmain'

The last message means no valid main() was defined. The other symbols (_deh_beg and _deh_end) are automatically generated by the compiler when main() is compiled, so they will also disappear when main() is linked in. Your D program can't run without a valid main(). Valid declarations are: void main() { ... } void main(char[][] args) { ... } int main() { ... } int main(char[][] args) { ... } (see <http://www.digitalmars.com/d/1.0/function.html> or <http://www.digitalmars.com/d/2.0/function.html>, near the bottom) The calling convention must be extern(D), which is the default if none is specified. I'm not sure if D 2.0 accepts main(string[] args) instead, but in D 1.0 string[] is identical to char[][] and should be accepted. ('args' may have another name, of course)

Thanks so . Had main in class , dumb
Mar 14 2008
parent Frits van Bommel <fvbommel REMwOVExCAPSs.nl> writes:
Barry Denton wrote:
 Frits van Bommel Wrote:
 
 Barry Denton wrote:
 dmain2.d:(.text._D6dmain24mainUiPPaZi7runMainMFZv+0x10): undefined reference
to `_Dmain'



 
 Thanks so . Had main in class , dumb

D !is Java :).
Mar 14 2008
prev sibling parent Barry Denton <basse42 yahoo.com> writes:
Frits van Bommel Wrote:

 Barry Denton wrote:
 /usr/lib/gcc/i586-suse-linux-gnu/4.1.2/../../../libtango-base-dmd.a(deh2.o):
In function `_D4deh213__eh_finddataFPvZPS4deh213DHandlerTable':
 deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x9): undefined
reference to `_deh_beg'
 deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0xe): undefined
reference to `_deh_beg'
 deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x14):
undefined reference to `_deh_end'
 deh2.d:(.text._D4deh213__eh_finddataFPvZPS4deh213DHandlerTable+0x37):
undefined reference to `_deh_end'
 /usr/lib/gcc/i586-suse-linux-gnu/4.1.2/../../../libtango-base-dmd.a(dmain2.o):
In function `_D6dmain24mainUiPPaZi7runMainMFZv':
 dmain2.d:(.text._D6dmain24mainUiPPaZi7runMainMFZv+0x10): undefined reference
to `_Dmain'

The last message means no valid main() was defined. The other symbols (_deh_beg and _deh_end) are automatically generated by the compiler when main() is compiled, so they will also disappear when main() is linked in. Your D program can't run without a valid main(). Valid declarations are: void main() { ... } void main(char[][] args) { ... } int main() { ... } int main(char[][] args) { ... } (see <http://www.digitalmars.com/d/1.0/function.html> or <http://www.digitalmars.com/d/2.0/function.html>, near the bottom) The calling convention must be extern(D), which is the default if none is specified. I'm not sure if D 2.0 accepts main(string[] args) instead, but in D 1.0 string[] is identical to char[][] and should be accepted. ('args' may have another name, of course)

Thanks so . Had main in class , dumb
Mar 14 2008