mirror of https://github.com/ARMmbed/mbed-os.git
fixed linker errors
for mbed 2: user lib (e.g. mbed lib) needs to be added to library group linker command changed: add flags after object filespull/4916/head
parent
08c44a029b
commit
6f0b2dec31
|
|
@ -48,6 +48,9 @@
|
|||
{% endfor %}
|
||||
</option>
|
||||
<option id="gnu.cpp.compiler.option.other.other.{{u.id}}" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" value="-c -fmessage-length=0 -fno-exceptions -fno-builtin -ffunction-sections -fdata-sections -funsigned-char -fno-delete-null-pointer-checks -fomit-frame-pointer" valueType="string"/>
|
||||
{% if opts['cpp']['otheroptimizations'] != '' %}
|
||||
<option id="gnu.cpp.compiler.option.optimization.flags.{{u.id}}" superClass="gnu.cpp.compiler.option.optimization.flags" useByScannerDiscovery="false" value="{{opts['cpp']['otheroptimizations']}}" valueType="string"/>
|
||||
{% endif %}
|
||||
{% if opts['common']['arm.target.fpu.unit_nxp'] %}
|
||||
<option id="com.crt.advproject.cpp.fpu.{{u.id}}" name="Floating point" superClass="com.crt.advproject.cpp.fpu" useByScannerDiscovery="false" value="com.crt.advproject.cpp.fpu.{{opts['common']['arm.target.fpu.unit_nxp']}}" valueType="enumerated"/>
|
||||
{% endif %}
|
||||
|
|
@ -102,7 +105,7 @@
|
|||
<inputType id="com.crt.advproject.assembler.input.{{u.id}}" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/>
|
||||
</tool>
|
||||
|
||||
<tool id="com.crt.advproject.link.cpp.exe.{{opts['id']}}.{{u.id}}" name="MCU C++ Linker" superClass="com.crt.advproject.link.cpp.exe.{{opts['id']}}">
|
||||
<tool commandLinePattern="${COMMAND} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} ${FLAGS}" id="com.crt.advproject.link.cpp.exe.{{opts['id']}}.{{u.id}}" name="MCU C++ Linker" superClass="com.crt.advproject.link.cpp.exe.{{opts['id']}}">
|
||||
<option defaultValue="com.crt.advproject.heapAndStack.lpcXpressoStyle.cpp" id="com.crt.advproject.link.memory.heapAndStack.style.cpp.{{u.id}}" name="Heap and Stack placement" superClass="com.crt.advproject.link.memory.heapAndStack.style.cpp" useByScannerDiscovery="false" value="com.crt.advproject.heapAndStack.lpcXpressoStyle.cpp" valueType="enumerated"/>
|
||||
<option id="com.crt.advproject.link.memory.heapAndStack.cpp.{{u.id}}" name="Heap and Stack options" superClass="com.crt.advproject.link.memory.heapAndStack.cpp" useByScannerDiscovery="false" value="&Heap:Default;Post Data;Default&Stack:Default;End;Default" valueType="string"/>
|
||||
<option id="com.crt.advproject.link.cpp.multicore.master.{{u.id}}" name="Multicore master" superClass="com.crt.advproject.link.cpp.multicore.master" useByScannerDiscovery="false"/>
|
||||
|
|
|
|||
|
|
@ -144,12 +144,12 @@ class MCUXpresso(Exporter):
|
|||
|
||||
# TODO: use some logger to display additional info if verbose
|
||||
|
||||
libraries = []
|
||||
self.libraries = []
|
||||
# print 'libraries'
|
||||
# print self.resources.libraries
|
||||
for lib in self.resources.libraries:
|
||||
l, _ = splitext(basename(lib))
|
||||
libraries.append(l[3:])
|
||||
self.libraries.append(l[3:])
|
||||
|
||||
self.system_libraries = [
|
||||
'stdc++', 'supc++', 'm', 'c', 'gcc', 'nosys'
|
||||
|
|
@ -248,7 +248,7 @@ class MCUXpresso(Exporter):
|
|||
self.filter_dot(s) for s in self.resources.lib_dirs]
|
||||
|
||||
opts['ld']['object_files'] = objects
|
||||
opts['ld']['user_libraries'] = libraries
|
||||
opts['ld']['user_libraries'] = self.libraries
|
||||
opts['ld']['system_libraries'] = self.system_libraries
|
||||
# opts['ld']['script'] = join(id.capitalize(),
|
||||
# "linker-script-%s.ld" % id)
|
||||
|
|
@ -937,7 +937,9 @@ class MCUXpresso(Exporter):
|
|||
if len(self.system_libraries) > 0:
|
||||
opts['ld']['other'] += ' -Wl,--start-group '
|
||||
opts['ld'][
|
||||
'other'] += ' '.join('-l' + s for s in self.system_libraries)
|
||||
'other'] += ' '.join('-l' + s for s in self.system_libraries) + ' '
|
||||
opts['ld'][
|
||||
'other'] += ' '.join('-l' + s for s in self.libraries)
|
||||
opts['ld']['other'] += ' -Wl,--end-group '
|
||||
|
||||
# Strip all 'other' flags, since they might have leading spaces.
|
||||
|
|
|
|||
Loading…
Reference in New Issue