"-ml3" is legacy code/data model support.  Before --mem_model: came along 
"-ml?" was used for specifying data and code models (where ? is 0-3).  
"-mv6400+" specifies C64+ DSP architecture, as available on Davinci and other 
processors.

Removing "-ml3" should solve your problem.  However, it might cause performance 
issues if you remove "-mv6400+".  This option, or one of the equivalent forms 
of it, needs to be present somewhere in your build options, since it tells the 
compiler to generate C64+ assembly code, instead of whatever the default is 
(the default will "work", since C64+ supports running C62 or C64 assembly, but 
will prevent full entitlement to the advanced C64+ instruction set).  But if 
you're using XDC platforms, and are specifying a Davinci platform, then this 
option should already be in place as part of the platform's build options, but 
you should check the end result of the compile command to find out what you're 
getting.

Regards,

- Rob

________________________________
From: davinci-linux-open-source-boun...@linux.davincidsp.com 
[mailto:davinci-linux-open-source-boun...@linux.davincidsp.com] On Behalf Of 
Avishai Hendel
Sent: Tuesday, March 31, 2009 6:16 AM
To: Ring, Chris; davinci-linux-open-source@linux.davincidsp.com
Subject: RE: migration to CE 2.10: DSP server linkage failure

Hi Chris,

Thanx for the quick reply.
You have removed that flag from config.bld, and indeed it was not found in my 
config.bld. Turns out that my server's package.bld had a few other compilation 
flags added which caused the confusion:

Pkg.attrs.copts = "-d__C6446__ -O2  -ml3 --symdebug:none -mv6400+";

I have changed it to be:

Pkg.attrs.copts = "-d__C6446__ -O2";
which resulted in a successful build. However, I'm not really sure what the ' 
-ml3' and the '-mv6400+' mean, and why they were in the build script in the 
first place (presumably I've copy / pasted the build flags from one or more 
codec packages I'm using in the combo.) Any insight on that (or better yet, the 
correct spr****.pdf :) ? I just need to know I haven't caused some massive 
performance degradation.

Regards,
Avishai


________________________________
From: Ring, Chris [mailto:cr...@ti.com]
Sent: Monday, March 30, 2009 3:21 AM
To: Avishai Hendel; davinci-linux-open-source@linux.davincidsp.com
Subject: RE: migration to CE 2.10: DSP server linkage failure

I think you see this if you build your server with --mem_model:data=far.  
Servers shouldn't throw that build flag.  I checked and CE 1.20's config.bld 
_did_ have this option thrown - looks like we removed it in CE 2.00.

[ FYI, some details on C6000 memory models are here:
http://tiexpressdsp.com/wiki/index.php?title=C6000_Memory_models ]

Can you see if your config.bld has this option thrown, and if so, remove it?

Chris

________________________________
From: davinci-linux-open-source-boun...@linux.davincidsp.com 
[mailto:davinci-linux-open-source-boun...@linux.davincidsp.com] On Behalf Of 
Avishai Hendel
Sent: Sunday, March 29, 2009 7:43 AM
To: davinci-linux-open-source@linux.davincidsp.com
Subject: migration to CE 2.10: DSP server linkage failure

Hello all,

I've been trying to migrate our DSP server combo to CE 2.10 environment from CE 
1.20. I haven't changed anything in our usual configuration (server.cfg, 
server.tcf etc.), except for the xdcpaths.mak file, which now specifies these 
recommended packages:

CE Ver: 2_10_02
XDC: 3_00_06
DSP/BIOS: 5_32_01
CG: 6_0_22 (I have also used 6_0_16, with the same outcome)

The rest of the modules are presumably taken from the CE internal 'cetools' 
directory.

Compilation fails with these warnings:

>> warning: Detected a near (.bss section relative) data reference to the symbol
            _VISA_checked defined in section .far.  The reference occurs in
            videnc1.o64P
            
(/home/dvevm/codec_engine_2_10_02/packages/ti/sdo/ce/video1/lib/debug/videnc1.a64P),
 section .text, SPC offset 00000000.  Either make the symbol near data by 
placing it in the .bss section, or make the references to the symbol far.  For 
C/C++ code use 'far' or 'near' modifiers on the type definition of the symbol 
or compile with the --mem_model:data switch.

>> warning: Detected a near (.bss section relative) data reference to the symbol
            _VISA_checked defined in section .far.  The reference occurs in
            imgenc.o64P
            
(/home/dvevm/codec_engine_2_10_02/packages/ti/sdo/ce/image/lib/debug/image.a64P),
 section .text, SPC offset 00000000.  Either make the symbol near data by 
placing it in the .bss section, or make the references to the symbol far.  For 
C/C++ code use 'far' or 'near' modifiers on the type definition of the symbol 
or compile with the --mem_model:data switch.

>> warning: Detected a near (.bss section relative) data reference to the symbol
            _VISA_checked defined in section .far.  The reference occurs in
            videnc.o64P
            
(/home/dvevm/codec_engine_2_10_02/packages/ti/sdo/ce/video/lib/debug/video.a64P),
 section .text, SPC offset 00000000.  Either make the symbol near data by 
placing it in the .bss section, or make the references to the symbol far.  For 
C/C++ code use 'far' or 'near' modifiers on the type definition of the symbol 
or compile with the --mem_model:data switch.

>> warning: Detected a near (.bss section relative) data reference to the symbol
            _VISA_checked defined in section .far.  The reference occurs in
            viddec.o64P
            
(/home/dvevm/codec_engine_2_10_02/packages/ti/sdo/ce/video/lib/debug/video.a64P),
 section .text, SPC offset 00000000.  Either make the symbol near data by 
placing it in the .bss section, or make the references to the symbol far.  For 
C/C++ code use 'far' or 'near' modifiers on the type definition of the symbol 
or compile with the --mem_model:data switch.

>> warning: Detected a near (.bss section relative) data reference to the symbol
            _Global_traceBufferSize defined in section .far.  The reference
            occurs in GT_config_BIOS.o64P
            
(/home/dvevm/codec_engine_2_10_02/packages/ti/sdo/ce/osal/bios/lib/osal_bios.a64P),
 section .text, SPC offset 000001b0.  Either make the symbol near data by 
placing it in the .bss section, or make the references to the symbol far.  For 
C/C++ code use 'far' or 'near' modifiers on the type definition of the symbol 
or compile with the --mem_model:data switch.

>> warning: Detected a near (.bss section relative) data reference to the symbol
            _Memory_numHeaps defined in section .far.  The reference occurs in
            Memory_BIOS.o64P
            
(/home/dvevm/codec_engine_2_10_02/packages/ti/sdo/ce/osal/bios/lib/osal_bios.a64P),
 section .text, SPC offset 00000418.  Either make the symbol near data by 
placing it in the .bss section, or make the references to the symbol far.  For 
C/C++ code use 'far' or 'near' modifiers on the type definition of the symbol 
or compile with the --mem_model:data switch.


and this error:

>>   error: relocation overflow occurred at address 0x000001b0 in section
            '.text' of input file
            
'/home/dvevm/codec_engine_2_10_02/packages/ti/sdo/ce/osal/bios/lib/osal_bios.a64P'.
  The 17-bit relocated address 0x142c6 is too large to encode in the 15-bit 
field. You may need to add a mask to the assembly instruction or use other 
target specific assembly features if you really only need the lowest 15 bits of 
this symbol. Please see the section on Relocation in the Assembly User's Guide.

Since the warnings and the error stem (apparently) from TI's binaries, I don't 
see a way for me to follow the suggestions (using the modifiers, or placing the 
symbols in a different section).
Where have I gone wrong?

Regards,

Avishai Hendel
Software Engineer
MangoDSP Ltd.
E-mail: avish...@mangodsp.com<mailto:avish...@mangodsp.com>
Work: +972 2 588 5037

_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to