Skip to content

Commit 6f0b2de

Browse files
committed
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 files
1 parent 08c44a0 commit 6f0b2de

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

tools/export/mcuxpresso/.cproject.tmpl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@
4848
{% endfor %}
4949
</option>
5050
<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"/>
51+
{% if opts['cpp']['otheroptimizations'] != '' %}
52+
<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"/>
53+
{% endif %}
5154
{% if opts['common']['arm.target.fpu.unit_nxp'] %}
5255
<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"/>
5356
{% endif %}
@@ -102,7 +105,7 @@
102105
<inputType id="com.crt.advproject.assembler.input.{{u.id}}" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/>
103106
</tool>
104107

105-
<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']}}">
108+
<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']}}">
106109
<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"/>
107110
<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="&amp;Heap:Default;Post Data;Default&amp;Stack:Default;End;Default" valueType="string"/>
108111
<option id="com.crt.advproject.link.cpp.multicore.master.{{u.id}}" name="Multicore master" superClass="com.crt.advproject.link.cpp.multicore.master" useByScannerDiscovery="false"/>

tools/export/mcuxpresso/__init__.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -144,12 +144,12 @@ def generate(self):
144144

145145
# TODO: use some logger to display additional info if verbose
146146

147-
libraries = []
147+
self.libraries = []
148148
# print 'libraries'
149149
# print self.resources.libraries
150150
for lib in self.resources.libraries:
151151
l, _ = splitext(basename(lib))
152-
libraries.append(l[3:])
152+
self.libraries.append(l[3:])
153153

154154
self.system_libraries = [
155155
'stdc++', 'supc++', 'm', 'c', 'gcc', 'nosys'
@@ -248,7 +248,7 @@ def generate(self):
248248
self.filter_dot(s) for s in self.resources.lib_dirs]
249249

250250
opts['ld']['object_files'] = objects
251-
opts['ld']['user_libraries'] = libraries
251+
opts['ld']['user_libraries'] = self.libraries
252252
opts['ld']['system_libraries'] = self.system_libraries
253253
# opts['ld']['script'] = join(id.capitalize(),
254254
# "linker-script-%s.ld" % id)
@@ -937,7 +937,9 @@ def process_options(self, opts, flags_in):
937937
if len(self.system_libraries) > 0:
938938
opts['ld']['other'] += ' -Wl,--start-group '
939939
opts['ld'][
940-
'other'] += ' '.join('-l' + s for s in self.system_libraries)
940+
'other'] += ' '.join('-l' + s for s in self.system_libraries) + ' '
941+
opts['ld'][
942+
'other'] += ' '.join('-l' + s for s in self.libraries)
941943
opts['ld']['other'] += ' -Wl,--end-group '
942944

943945
# Strip all 'other' flags, since they might have leading spaces.

0 commit comments

Comments
 (0)