makeSymTbl filters required symbols

I am using VxWorks 5.5 with a BSP for the 5307 Coldfire CPU, and the Diab 4.4 compiler.

The problem is this:

The makeSymTbl.tcl script filters symbols that do not begin with an underscore =93_=94. This removes symbols from the symbol table such as =91dbmul=92 and =91fltused=92 found in libdcc.a., libcfp.a, and/or libimpfp.a.

When creating a dynamically loadable module (.out), the loadModule function (or ld shell function) can=92t load and link the module because symbols required to perform double/FP arithmetic are not in the symbol table.

Undefined symbol: dbmul (binding 1 type 0) Undefined symbol: fltused (binding 1 type 0)

These symbols are indeed in the vxWorks image.

Here is the code in the makeSymTbl.tcl script. This is a WindRiver build tool for making a standalone symbol table.

C:\Tornado2.2\host\src\hutils\makeSymTbl.tcl:134 filters these out. Here is the comment associated with the filter:

# for 68k and coldfire, all global symbols which don't begin with '_' # should be filtered out. Such symbols are from assembly code and # can't # be referenced in C file. Subsequently, they can't be in symTbl.c. # To make global symbols defined in assembly code valid for # standalone symbol table, they have to begin with '_'. Note this # is true for 68k and coldfire only.

if [regexp {^.* . [^_].*$} $symbolEntry] { if {($cpuType =3D=3D "68k") || ($cpuType =3D=3D "cf")} { continue } }

How can we build a dynamic load module (.out) that uses FP arithmetic when the required symbols are removed from the symbol table in the VxWorks kernel executable?

Reply to
sconnet
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.