forked from platformio/platformio-core
Fix multiple definition errors for ST STM32 development platform and mbed framework // Resolve #571
This commit is contained in:
@ -9,6 +9,9 @@ PlatformIO 2.0
|
||||
|
||||
* Launched `PlatformIO Community Forums <http://community.platformio.org>`_
|
||||
(`issue #530 <https://github.com/platformio/platformio/issues/530>`_)
|
||||
* Fixed multiple definition errors for ST STM32 development platform and mbed
|
||||
framework
|
||||
(`issue #571 <https://github.com/platformio/platformio/issues/571>`_)
|
||||
|
||||
2.8.5 (2016-03-07)
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
import sys
|
||||
|
||||
VERSION = (2, 8, 5)
|
||||
VERSION = (2, 8, "6.dev0")
|
||||
__version__ = ".".join([str(s) for s in VERSION])
|
||||
|
||||
__title__ = "platformio"
|
||||
|
@ -195,18 +195,27 @@ def get_build_flags(data):
|
||||
return flags
|
||||
|
||||
|
||||
def _mbed_whole_archive_hook(flags):
|
||||
if (not isinstance(flags, list) or
|
||||
def _mbed_whole_archive_hook(libs):
|
||||
if (not isinstance(libs, list) or
|
||||
env.get("BOARD_OPTIONS", {}).get("platform") != "ststm32"):
|
||||
return flags
|
||||
return libs
|
||||
|
||||
for pos, flag in enumerate(flags[:]):
|
||||
if isinstance(flag, basestring):
|
||||
continue
|
||||
flags.insert(pos, "-Wl,-whole-archive")
|
||||
flags.insert(pos + 2, "-Wl,-no-whole-archive")
|
||||
_dynlibs = []
|
||||
_stlibs = []
|
||||
for l in libs:
|
||||
if isinstance(l, basestring):
|
||||
_stlibs.append(l)
|
||||
else:
|
||||
_dynlibs.append(l)
|
||||
|
||||
return flags
|
||||
libs = []
|
||||
if _dynlibs:
|
||||
libs.append("-Wl,-whole-archive")
|
||||
libs.extend(_dynlibs)
|
||||
libs.append("-Wl,-no-whole-archive")
|
||||
libs.extend(_stlibs)
|
||||
|
||||
return libs
|
||||
|
||||
|
||||
board_type = env.subst("$BOARD")
|
||||
|
Reference in New Issue
Block a user