STM32F4 and Dynamic loading.

Valentin BOUSSON <[email protected]>
Newsgroups gmane.os.ecos.general
Message-ID <[email protected]>
Hello again,
Thank you for your help.

I encounter anotger problem that could signify the end between eCos and 
I for my project... :(
After having some simple examples working, i tried to make one using 
Dynamic ELF loading (dlopen).

So I tried first to compile eCos from the template stm32f4discovery +  
posix (that compiles), and then adding the package "Dynamic Loder". A 
conflict is resolved, setting the header to <cyg/loader/dlfcn>,
but then with no more conflict the command Build / Library crash and 
doesn't want to compile "services/loader/current/src/loader.cxx"


Do you see what does it come from ? I see in the traces some undefined 
macros, but It doesn't seems to be the main problem.

By the way, I have seen through experimentations in order to resolve 
this issue, a difference between CYGPKG_HAL_CORTEXM and CYGPKG_HAL_ARM.
So I would know : doesn't a cortexm platform be considered as an ARM one 
? Why not ? Is it a cause of my problem ?


Cheers, and thank you again.

Valentin BOUSSON




end of traces :
==========

In file included from 
~/ecos/packages/services/loader/current/src/loader.cxx:65:
~/ecos_tests/ecos_install/include/cyg/loader/loader.hxx:351: error: 
invalid use of incomplete type ‘struct Cyg_LoadObject_Proc’
~/ecos_tests/ecos_install/include/cyg/loader/loader.hxx:77: error: 
forward declaration of ‘struct Cyg_LoadObject_Proc’
make[1]: Leaving directory `~/ecos_tests/ecos_build/services/loader/current'
~/ecos_tests/ecos_install/include/cyg/loader/loader.hxx: In constructor 
‘Cyg_LoadObject::Cyg_LoadObject()’:
make: Leaving directory `~/ecos_tests/ecos_build'
~/ecos_tests/ecos_install/include/cyg/loader/loader.hxx:357: error: type 
‘Cyg_LoadObject_Proc’ is not a direct base of ‘Cyg_LoadObject’

~/ecos_tests/ecos_install/include/cyg/loader/loader.hxx: In constructor 
‘Cyg_LoadObject::Cyg_LoadObject(Cyg_LoaderStream&, cyg_uint32, 
Cyg_LoaderMemAlloc*, Cyg_LoaderMemBlock*)’:
~/ecos_tests/ecos_install/include/cyg/loader/loader.hxx:365: error: type 
‘Cyg_LoadObject_Proc’ is not a direct base of ‘Cyg_LoadObject’
In file included from 
~/ecos/packages/services/loader/current/src/dload.cxx:66:
~/ecos_tests/ecos_install/include/cyg/loader/loader.hxx:351: error: 
invalid use of incomplete type ‘struct Cyg_LoadObject_Proc’
~/ecos_tests/ecos_install/include/cyg/loader/loader.hxx:77: error: 
forward declaration of ‘struct Cyg_LoadObject_Proc’
~/ecos_tests/ecos_install/include/cyg/loader/loader.hxx: In constructor 
‘Cyg_LoadObject::Cyg_LoadObject()’:
~/ecos_tests/ecos_install/include/cyg/loader/loader.hxx:357: error: type 
‘Cyg_LoadObject_Proc’ is not a direct base of ‘Cyg_LoadObject’
~/ecos_tests/ecos_install/include/cyg/loader/loader.hxx: In constructor 
‘Cyg_LoadObject::Cyg_LoadObject(Cyg_LoaderStream&, cyg_uint32, 
Cyg_LoaderMemAlloc*, Cyg_LoaderMemBlock*)’:
~/ecos_tests/ecos_install/include/cyg/loader/loader.hxx:365: error: type 
‘Cyg_LoadObject_Proc’ is not a direct base of ‘Cyg_LoadObject’
~/ecos/packages/services/loader/current/src/loader.cxx: In constructor 
‘Cyg_Loader::Cyg_Loader(Cyg_LoaderMemAlloc*)’:
~/ecos/packages/services/loader/current/src/loader.cxx:126: error: no 
matching function for call to 
‘Cyg_CList_T<Cyg_LoadObject>::add_head(Cyg_LoadObject*&)’
~/ecos_tests/ecos_install/include/cyg/infra/clist.hxx:173: note: 
candidates are: void Cyg_CList::add_head(Cyg_DNode*)
~/ecos/packages/services/loader/current/src/loader.cxx:128: error: 
‘class Cyg_LoadObject’ has no member named ‘get_error’
~/ecos/packages/services/loader/current/src/loader.cxx: In member 
function ‘cyg_code Cyg_Loader::load(Cyg_LoaderStream&, cyg_uint32, 
Cyg_LoadObject**)’:
~/ecos/packages/services/loader/current/src/loader.cxx:160: error: 
‘class Cyg_LoadObject’ has no member named ‘get_error’
~/ecos/packages/services/loader/current/src/loader.cxx:168: error: no 
matching function for call to 
‘Cyg_CList_T<Cyg_LoadObject>::add_tail(Cyg_LoadObject*&)’
~/ecos_tests/ecos_install/include/cyg/infra/clist.hxx:209: note: 
candidates are: void Cyg_CList::add_tail(Cyg_DNode*)
~/ecos/packages/services/loader/current/src/loader.cxx:175: error: 
‘class Cyg_LoadObject’ has no member named ‘get_error’
~/ecos/packages/services/loader/current/src/loader.cxx:186: error: 
‘class Cyg_LoadObject’ has no member named ‘get_error’
~/ecos/packages/services/loader/current/src/loader.cxx:193: error: no 
matching function for call to 
‘Cyg_CList_T<Cyg_LoadObject>::remove(Cyg_LoadObject*&)’
~/ecos_tests/ecos_install/include/cyg/infra/clist.hxx:258: note: 
candidates are: void Cyg_CList::remove(Cyg_DNode*)
~/ecos/packages/services/loader/current/src/loader.cxx: In member 
function ‘CYG_ADDRESS Cyg_Loader::hash_lookup_addr(const char*)’:
~/ecos/packages/services/loader/current/src/loader.cxx:253: error: 
‘class Cyg_LoadObject’ has no member named ‘hash_lookup_addr’
~/ecos/packages/services/loader/current/src/loader.cxx:258: error: 
‘class Cyg_LoadObject’ has no member named ‘get_next’
~/ecos/packages/services/loader/current/src/loader.cxx: In constructor 
‘Cyg_LoadObject_Base::Cyg_LoadObject_Base(Cyg_LoaderStream&, cyg_uint32, 
Cyg_LoaderMemAlloc*)’:
~/ecos/packages/services/loader/current/src/loader.cxx:331: error: 
‘CYG_ELF_MACHINE’ was not declared in this scope
~/ecos/packages/services/loader/current/src/dload.cxx: In function 
‘void* dlsym(void*, const char*)’:
~/ecos/packages/services/loader/current/src/dload.cxx:178: error: ‘class 
Cyg_LoadObject’ has no member named ‘symbol’
make[1]: *** [src/dload.o.d] Error 1
make[1]: *** Waiting for unfinished jobs....
~/ecos/packages/services/loader/current/src/loader.cxx: In member 
function ‘void Cyg_LoadObject::relocate()’:
~/ecos/packages/services/loader/current/src/loader.cxx:767: error: ‘rel’ 
was not declared in this scope
~/ecos/packages/services/loader/current/src/loader.cxx:770: error: 
‘relsize’ was not declared in this scope
~/ecos/packages/services/loader/current/src/loader.cxx:770: error: 
‘error’ was not declared in this scope
~/ecos/packages/services/loader/current/src/loader.cxx:770: error: 
‘relent’ was not declared in this scope
~/ecos/packages/services/loader/current/src/loader.cxx:773: error: 
‘apply_rel’ was not declared in this scope
~/ecos/packages/services/loader/current/src/loader.cxx:777: error: 
‘error’ was not declared in this scope
~/ecos/packages/services/loader/current/src/loader.cxx:777: error: 
‘rela’ was not declared in this scope
~/ecos/packages/services/loader/current/src/loader.cxx:780: error: 
‘relasize’ was not declared in this scope
~/ecos/packages/services/loader/current/src/loader.cxx:780: error: 
‘relaent’ was not declared in this scope
~/ecos/packages/services/loader/current/src/loader.cxx:784: error: 
‘apply_rela’ was not declared in this scope
~/ecos/packages/services/loader/current/src/loader.cxx: In member 
function ‘void Cyg_LoadObject::relocate_plt()’:
~/ecos/packages/services/loader/current/src/loader.cxx:797: error: 
‘pltrel’ was not declared in this scope
~/ecos/packages/services/loader/current/src/loader.cxx:799: error: 
‘jmprel’ was not declared in this scope
~/ecos/packages/services/loader/current/src/loader.cxx:800: error: 
‘pltrelsz’ was not declared in this scope
~/ecos/packages/services/loader/current/src/loader.cxx:800: error: 
‘error’ was not declared in this scope
~/ecos/packages/services/loader/current/src/loader.cxx:803: error: 
‘apply_rel’ was not declared in this scope
~/ecos/packages/services/loader/current/src/loader.cxx:807: error: 
‘error’ was not declared in this scope
~/ecos/packages/services/loader/current/src/loader.cxx:807: error: 
‘pltrel’ was not declared in this scope
~/ecos/packages/services/loader/current/src/loader.cxx:809: error: 
‘jmprel’ was not declared in this scope
~/ecos/packages/services/loader/current/src/loader.cxx:810: error: 
‘pltrelsz’ was not declared in this scope
~/ecos/packages/services/loader/current/src/loader.cxx:814: error: 
‘apply_rela’ was not declared in this scope
~/ecos/packages/services/loader/current/src/loader.cxx: In member 
function ‘virtual cyg_code Cyg_LoaderStream_File::seek(CYG_ADDRWORD)’:
~/ecos/packages/services/loader/current/src/loader.cxx:1045: warning: 
comparison between signed and unsigned integer expressions
make[1]: *** [src/loader.o.d] Error 1
make: *** [build] Error 2

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.