File tree Expand file tree Collapse file tree 2 files changed +21
-2
lines changed Expand file tree Collapse file tree 2 files changed +21
-2
lines changed Original file line number Diff line number Diff line change @@ -51,6 +51,16 @@ def filter_dot(str_in):
51
51
return str_in [2 :]
52
52
return str_in
53
53
54
+ @staticmethod
55
+ def prepare_lib (libname ):
56
+ if "lib" == libname [:3 ]:
57
+ libname = libname [3 :- 2 ]
58
+ return "-l" + libname
59
+
60
+ @staticmethod
61
+ def prepare_sys_lib (libname ):
62
+ return "-l" + libname
63
+
54
64
def generate (self ):
55
65
self .resources .win_to_unix ()
56
66
@@ -79,6 +89,10 @@ def generate(self):
79
89
not x .startswith ('obj' ))];
80
90
81
91
c_sources = sorted ([self .filter_dot (s ) for s in self .resources .c_sources ])
92
+ libraries = [self .prepare_lib (basename (lib )) for lib
93
+ in self .resources .libraries ]
94
+ sys_libs = [self .prepare_sys_lib (lib ) for lib
95
+ in self .toolchain .sys_libs ]
82
96
83
97
ctx = {
84
98
'project_name' : self .project_name ,
@@ -91,7 +105,8 @@ def generate(self):
91
105
'cpp_sources' : sorted ([self .filter_dot (s ) for s in self .resources .cpp_sources ]),
92
106
'include_paths' : inc_dirs ,
93
107
'linker_script' : self .filter_dot (self .resources .linker_script ),
94
- 'libraries' : self .resources .libraries ,
108
+ 'libraries' : libraries ,
109
+ 'sys_libs' : sys_libs ,
95
110
'openocdboard' : ''
96
111
}
97
112
Original file line number Diff line number Diff line change 45
45
<Add option =" {{f}}" />
46
46
{% endfor -%}
47
47
<Add option =" -T {{linker_script}}" />
48
+ <Add option =" -Wl,--start-group {{sys_libs|join(" " )}} {{libraries|join(" " )}} -Wl,--end-group" />
49
+ {% for f in sys_libs -%}
50
+ <Add option =" {{f}}" />
51
+ {% endfor -%}
48
52
{% for f in libraries -%}
49
- <Add library =" {{f}}" />
53
+ <Add option =" {{f}}" />
50
54
{% endfor -%}
51
55
</Linker >
52
56
{% for f in headers -%}
You can’t perform that action at this time.
0 commit comments