You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by GitBox <gi...@apache.org> on 2022/09/22 10:23:56 UTC
[GitHub] [incubator-nuttx] anchao opened a new pull request, #7165: arch/arm: redefine the linker symbols as armlink style
anchao opened a new pull request, #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165
## Summary
arch/arm: redefine the linker symbols as armlink style
This is a simple implementation of https://github.com/apache/incubator-nuttx/pull/7121, seems redefine the symbol is better than steering file
## Impact
N/A
## Testing
CONFIG_ARM_TOOLCHAIN_ARMCLANG
./tools/configure.sh sabre-6quad/smp
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] pkarashchenko commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
pkarashchenko commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r977985172
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
Let's check `--predefine "directive"`, `--pd "directive"`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] pkarashchenko commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
pkarashchenko commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r978315035
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
Only one. Can we define `_START_TEXT`, etc. and add `elif` at line 108 instead of redefining GCC symbols here?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] xiaoxiang781216 commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r978293726
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
@pkarashchenko do you have more comment?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] pkarashchenko commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
pkarashchenko commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r978622031
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
Anyway let's merge something that is working, so I will be able to download the code and arm compiler and try some builds.
@xiaoxiang781216 will some configuration be upstream to mainline to try Arm compiler?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] xiaoxiang781216 merged pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 merged PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] pkarashchenko commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
pkarashchenko commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r977856440
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
Any chance to use `--defsym` with armclang(armlink)?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] pkarashchenko commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
pkarashchenko commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r978422129
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
Do we have any other define in ARM toolchain that we can rely on other than CONFIG_ option similar to __ICCARM__?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] xiaoxiang781216 commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r978731084
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
> Do we target Arm compiler 4/5 or 6 (or any)? For Arm compiler 6 we can use `__ARMCC_VERSION` for example
We are only targeting to Arm compiler 6 since Arm compiler arm4/5 is based on gcc and ARM stop to do new development on that and suggest all customer transfer to Arm compiler 6.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] anchao commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
anchao commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r978255862
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
`--predefine can not do symbol substitution`
```
armlink --predefine="-D_sbss=Image$$bss$$Base" --entry=__start --cpu=Cortex-A9 --diag_suppress=9931 --debug --scatter=/home/archer/code/nuttx/n6/incubator-nuttx/boards/arm/imx6/sabre-6quad/scripts/dramboot.sct --userlibpath /home/archer/code/nuttx/n6/incubator-nuttx/staging --userlibpath /home/archer/code/nuttx/n6/incubator-nuttx/arch/arm/src/board -o /home/archer/code/nuttx/n6/incubator-nuttx/nuttx arm_vectortab.o --library=sched --library=drivers --library=boards --library=c --library=mm --library=arch --library=xx --library=apps --library=fs --library=binfmt --library=board arm_vectors.o
"/tmp/NdhWsr", line 53 (column 5): Warning: L6312W: Empty Execution region description for region eronly
Error: L6218E: Undefined symbol _sbss (referred from arm_head.o).
Error: L6218E: Undefined symbol _ebss (referred from arm_head.o).
Error: L6218E: Undefined symbol _enoinit (referred from arm_head.o).
Error: L6218E: Undefined symbol _sinit (referred from lib_cxx_initialize.o).
Error: L6218E: Undefined symbol _einit (referred from lib_cxx_initialize.o).
Finished: 0 information, 1 warning and 5 error messages.
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] anchao commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
anchao commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r978386945
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
1. The section name must be extern to avoid the compile warning.
2. The reason for the redefinition here is that the assembly code is also using this define:
https://github.com/apache/incubator-nuttx/blob/master/arch/arm/src/armv7-a/arm_head.S#L723-L742
3. Defining on the CFLAGS will confuse developers to debugging the build commands, since too many symbols need to be redefined...
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] xiaoxiang781216 commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r977924086
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
But, armlink doesn't support `--defsym` I think.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] pkarashchenko commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
pkarashchenko commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r978315035
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
Only one. Can we define `_START_TEXT`, etc. and add `elif` at line 108 instead of redefining GCC symbols here?
Or maybe simple adding `-D` to CFLAGS may work?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] xiaoxiang781216 commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r978734961
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
> Do we target Arm compiler 4/5 or 6 (or any)? For Arm compiler 6 we can use `__ARMCC_VERSION` for example
We don't need check Arm compiler version here, since armlink version 6 is same as 4/5 regarding the symbols generated by armlink.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] anchao commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
anchao commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r977681559
##########
arch/arm/include/arch.h:
##########
@@ -104,6 +104,26 @@ do { \
# endif
#endif /* CONFIG_ARCH_ADDRENV */
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
Review Comment:
Done
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] xiaoxiang781216 commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r978225934
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
armlink's `--predefine` equals c preprocessor `-D`:
<img width="650" alt="image" src="https://user-images.githubusercontent.com/18066964/191882262-8ccf1179-f2da-4de7-991b-5cd038459c99.png">
So, I don't believe `--predefine="_stext=Image$$text$$Base"` or `--predefine="Image$$text$$Base=_stext"` generate the result we want, since the scatter file never has `_stext` or `Image$$text$$Base` symbols, `--predefine` can't find anything to replace.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] xiaoxiang781216 commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r978225934
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
armlink's `--predefine` equals c preprocessor `-D`:
<img width="650" alt="image" src="https://user-images.githubusercontent.com/18066964/191882262-8ccf1179-f2da-4de7-991b-5cd038459c99.png">
So, I don't believe `--predefine=_stext=Image$$text$$Base` generate the result we want, since the scatter file never has `_stext` or `Image$$text$$Base` symbols, `--predefine` can't find anything to replace.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] xiaoxiang781216 commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r977834924
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
armclang(armlink) has special link script grammar which doesn't support to define the custom label. You can reference the guild here:
[https://developer.arm.com/documentation/dui0803](https://developer.arm.com/documentation/dui0803/a/Accessing-and-managing-symbols-with-armlink/What-is-a-steering-file-)
The only solution @anchao found is to use the steering file to alias Image$$xxx$$yyy to _[s|e]xxx.
The change is here https://github.com/apache/incubator-nuttx/pull/7121, but it is complex and hard to extend.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] xiaoxiang781216 commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r978444526
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
GNU LD only support for linux platform and has many limitation:
https://developer.arm.com/documentation/dui0474/i/gnu-ld-script-support-in-armlink/about-gnu-ld-script-support-and-restrictions?lang=en
so it isn't suitable for bare metal and RTOS.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] xiaoxiang781216 commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r977834924
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
armclang(armlink) has special link script grammar which doesn't support to define the custom label. You can reference the guild here:
[https://developer.arm.com/documentation/dui0803](https://developer.arm.com/documentation/dui0803/a/Accessing-and-managing-symbols-with-armlink/What-is-a-steering-file-)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] pkarashchenko commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
pkarashchenko commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r977818050
##########
arch/arm/include/arch.h:
##########
@@ -104,6 +104,13 @@ do { \
# endif
#endif /* CONFIG_ARCH_ADDRENV */
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _sinit Image$$init_section$$Base
+# define _einit Image$$init_section$$Limit
Review Comment:
Maybe better to do this via linker script?
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
Maybe better to do it via linker script?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] pkarashchenko commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
pkarashchenko commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r978428713
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
https://developer.arm.com/documentation/dui0474/i/BABEHEDA
I see that ARMLINK supports GNU-like LD scripts. Why we can't `_stext = Image$$region_name$$Base` in LD script?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] xiaoxiang781216 commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r978731084
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
> Do we target Arm compiler 4/5 or 6 (or any)? For Arm compiler 6 we can use `__ARMCC_VERSION` for example
We are only targeting to Arm compiler 6 since Arm compiler arm4/5 is based on gcc and ARM stop to do more development on that and suggest all customer transfer to Arm compiler 6.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] xiaoxiang781216 commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r977676575
##########
arch/arm/include/arch.h:
##########
@@ -104,6 +104,26 @@ do { \
# endif
#endif /* CONFIG_ARCH_ADDRENV */
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
Review Comment:
let's remove the dup definition?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] xiaoxiang781216 commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r978444526
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
GNU LD only support for linux platform and has many limitation:
https://developer.arm.com/documentation/dui0474/i/gnu-ld-script-support-in-armlink/about-gnu-ld-script-support-and-restrictions?lang=en
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] pkarashchenko commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
pkarashchenko commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r978422129
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
Do we have any other define in ARM toolchain that we can rely on other than CONFIG_ option similar to `__ICCARM__`?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
[GitHub] [incubator-nuttx] pkarashchenko commented on a diff in pull request #7165: arch/arm: redefine the linker symbols as armlink style
Posted by GitBox <gi...@apache.org>.
pkarashchenko commented on code in PR #7165:
URL: https://github.com/apache/incubator-nuttx/pull/7165#discussion_r978615808
##########
arch/arm/src/common/arm_internal.h:
##########
@@ -148,6 +148,24 @@
#define arm_switchcontext(saveregs, restoreregs) \
sys_call2(SYS_switch_context, (uintptr_t)saveregs, (uintptr_t)restoreregs);
+/* Redefine the linker symbols as armlink style */
+
+#ifdef CONFIG_ARM_TOOLCHAIN_ARMCLANG
+# define _stext Image$$text$$Base
+# define _etext Image$$text$$Limit
+# define _eronly Image$$eronly$$Base
+# define _sdata Image$$data$$Base
+# define _edata Image$$data$$RW$$Limit
+# define _sbss Image$$bss$$Base
+# define _ebss Image$$bss$$ZI$$Limit
+# define _stdata Image$$tdata$$Base
+# define _etdata Image$$tdata$$Limit
+# define _stbss Image$$tbss$$Base
+# define _etbss Image$$tbss$$Limit
+# define _snoinit Image$$noinit$$Base
+# define _enoinit Image$$noinit$$Limit
Review Comment:
Do we target Arm compiler 4/5 or 6 (or any)?
For Arm compiler 6 we can use `__ARMCC_VERSION` for example
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org