replace *(.init_array .init_array.*) with KEEP(*(.init_array .init_array.*)).
The KEEP statement within a linker script will instruct the linker to keep the specified section, even if no symbols inside it are referenced. This statement is used within the SECTIONS section of the linker script. This becomes relevant when garbage collection is performed at link time, enabled by passing the --gc-sections switch to the linker. The KEEP statement instructs the linker to use the specified section as a root node when creating a dependency graph, looking for unused sections. Essentially forcing the section to be marked as used.
Signed-off-by: cuiziwei <cuiziwei@xiaomi.com>
In order to support multiple LCD instances per board, add a pointer from
lcd_planeinfo_s to the lcd_dev_s which it belongs to. Also enhance the
putrun, getrun, putarea and getarea methods to pass through the
lcd_dev_s pointer to the respective device driver.
Port all LCD device drivers to this lcd_planeinfo_s extension.
Enhance SSD1306 driver to support multiple LCDs.
Signed-off-by: Michael Jung <michael.jung@secore.ly>
## Summary
A lot of linker scripts were listed twice, once for unix, once for windows.
This PR cleans up the logic so they're only listed once.
## Impact
Any opportunity to use a single source of truth and reduce lines of code is a win!
## Testing
CI will test all build
since the related code was removed by:
commit 4d5a964f29
Author: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
Date: Tue Feb 23 18:04:13 2021 +0800
net: unify socket into file descriptor
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
This reverts commit 45672c269d.
Because:
* It's very confusing to have cc as LD.
* I don't see what "-nostartfiles -nodefaultlibs" in LDFLAGS are
supposed to do when we use LD directly. It would be simpler to
remove them from our LDFLAGS.
Drop to user-space in kernel/protected build with up_pthread_exit,
now all pthread_cleanup functions executed in user mode.
* A new syscall SYS_pthread_exit added
* A new tcb flag TCB_FLAG_CANCEL_DOING added
* up_pthread_exit implemented for riscv/arm arch
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
The following nxstyle errrors are intentionally left.
They are a part of a large table, which is not trivial to fix.
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:43:87: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:44:86: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:45:87: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:46:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:47:89: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:48:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:49:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:50:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:51:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:52:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:53:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:54:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:55:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:56:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:57:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:58:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:59:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:60:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:61:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:62:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:63:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:64:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:65:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:66:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:67:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:68:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:69:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:70:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:71:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:72:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:73:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:74:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:75:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:76:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:77:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:78:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:79:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:80:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:81:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:82:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:83:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:84:84: error: Long line found
In the current compilation environment, the recursive assignment(=) for compile
flags will be delayed until every file is actually need to be compile.
For example:
--------------------------------------------------------------------------------
arch/arm/src/Makefile:
INCLUDES += ${shell $(INCDIR) "$(CC)" $(ARCH_SRCDIR)$(DELIM)chip}
INCLUDES += ${shell $(INCDIR) "$(CC)" $(ARCH_SRCDIR)$(DELIM)common}
INCLUDES += ${shell $(INCDIR) "$(CC)" $(ARCH_SRCDIR)$(DELIM)$(ARCH_SUBDIR)}
INCLUDES += ${shell $(INCDIR) "$(CC)" $(TOPDIR)$(DELIM)sched}
CPPFLAGS += $(INCLUDES) $(EXTRAFLAGS)
CFLAGS += $(INCLUDES) $(EXTRAFLAGS)
CXXFLAGS += $(INCLUDES) $(EXTRAFLAGS)
AFLAGS += $(INCLUDES) $(EXTRAFLAGS)
--------------------------------------------------------------------------------
All compilation options will be included recursively,
which will be delayed until the compilation options are actually used:
tools/Config.mk:
--------------------------------------------------------------------------------
define COMPILE
@echo "CC: $1"
$(Q) $(CC) -c $(CFLAGS) $($(strip $1)_CFLAGS) $1 -o $2
endef
--------------------------------------------------------------------------------
All compile flags to be reexecuted $(INCDIR) as long as one file needs to be compiled,
but in fact, the compilation options have not changed in the current directory.
So the we recommand to change the syntax of assignment
From
Recursive (=)
To
Simple (:=)
In this way, we can ensure that all compilation options are expanded only once and reducing repeated works.
Signed-off-by: chao.an <anchao@xiaomi.com>
1.Reduce the default size of task_group_s(~512B each task)
2.Scale better between simple and complex application
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Ia872137504fddcf64d89c48d6f0593d76d582710
to save the preserved space(1KB) and also avoid the heap overhead
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I694073f68e1bd63960cedeea1ddec441437be025