Arm Community
Site
Search
User
Site
Search
User
Support forums
Arm Development Studio forum
Building Linux applications/libs in GCC emulation mode
Jump...
Cancel
Locked
Locked
Replies
5 replies
Subscribers
119 subscribers
Views
4199 views
Users
0 members are here
Options
Share
More actions
Cancel
Related
How was your experience today?
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion
Building Linux applications/libs in GCC emulation mode
Marius Cetateanu
over 12 years ago
Marius Cetateanu
over 12 years ago
Note: This was originally posted on 25th May 2011 at
http://forums.arm.com
bump
I managed to figure out more or less the first point of my previous post.
But I still get the linker errors and the crash with O3 optimizations.
Does anyone have any idea?
Any leads would be appreciated as I have just a few days left of my evaluation copy of the DS-5
.
Thanks
Cancel
Vote up
0
Vote down
Cancel
Marius Cetateanu
over 12 years ago
Note: This was originally posted on 27th May 2011 at
http://forums.arm.com
Maybe this will help someone ... as it seems that this thread is becoming a monologue
After updating to the latest CodeSourcery toolchain for ARM Linux I got rid of most of the warnings except for the below one
Warning: L6439W: Multiply defined Global Symbol LogProxy::LogProxy(int) defined in invalid_group(XXXXX.o) rejected in favor of Symbol defined in i._ZN8LogProxyC1Ei(YYYYY.o).
I know what the message means(or at least I suppose I know) but I cannot figure out why I'm getting it - it's
really, really confusing as I do not get it with GCC. So the best guess is that the ARM linker tries to link my
libraries/object files multiple times. How can I see what exactly is the command line of the armcc/armlink in
GCC emulation mode? I mean the real command line - the one after the GCC emulation takes place,
because I have the one generated by the build system which does not tell me much.
Thanks
Cancel
Vote up
0
Vote down
Cancel
Alban Rampon
over 12 years ago
Note: This was originally posted on 2nd June 2011 at
http://forums.arm.com
Hello Celavek,
First, I can confirm you are not talking to yourself.
Looking at your warning, I would understand that despite it, you still get a proper working code.
The way I understand it (and I have not used DS-5 but other tools in the past) is that you have a double declaration.
In my old programmers days (!), it meant that I didn't use the EXTERN word in the second declaration and was therefore ending with two different variables with the same name... and was getting a linker failure.
Here, I think the linker understands that names are the same and chose one declaration over the other one.
Have you search your project for all declarations of that symbol and is it only declared once?
Can you still try?
Kindly, Alban
Cancel
Vote up
0
Vote down
Cancel
Edmund Player
over 12 years ago
Note: This was originally posted on 2nd June 2011 at
http://forums.arm.com
[font=arial, verdana, tahoma, sans-serif][size=2]I have played around with this... it doesn't look like armcc translates any of the -Wxyz warning options from gcc (except -Wall). But, it seems to handle -f* options where its has equivalentsI think that warning L6238E is harmless in almost all cases; it is given by armlink because libgcc and other GCC/GNU assembler-built libraries don't contain ARM build attributes for marking that 8-byte stack alignment is required/preserved. You could just suppress this globally by setting ARMCC50_LINKOPT="--diag_suppress=6238". Warning L6439W is again harmless; it'll most likely be generated for out-of-line copies of inline functions in Comdat groups, where GCC hasn't strictly followed ELF rules about the groups and therefore armlink is rejecting that copy and instead using a copy from the same Comdat group that was generated in one of the armcc-compiled object files.Updating to the latest GNU toolchain is also worth a punt.
[/size][/font]
Cancel
Vote up
0
Vote down
Cancel
Kinzerskiy Vladyslav
over 12 years ago
Cancel
Vote up
0
Vote down
Cancel