All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot]  [PATCH] Don't inline weak symbols
@ 2009-11-03 11:55 Roman Zeyde
  2009-11-03 13:23 ` Wolfgang Denk
  0 siblings, 1 reply; 7+ messages in thread
From: Roman Zeyde @ 2009-11-03 11:55 UTC (permalink / raw)
  To: u-boot

Hi Wolfgang ,

I have noticed that the same error as described here
(http://lists.denx.de/pipermail/u-boot/2009-October/061913.html)
happens when compiling the latest version of U-boot (v2009-11-rc1)
using arm-cortex_a8-linux-gnueabi gcc version 4.4.0
(crosstool-NG-hg_default at 1620_187e06178dcb).

Could you please apply the patch described above to resolve this issue?

Thanks,
 Roman.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] Don't inline weak symbols
  2009-11-03 11:55 [U-Boot] [PATCH] Don't inline weak symbols Roman Zeyde
@ 2009-11-03 13:23 ` Wolfgang Denk
  2009-11-03 14:04   ` Tom
  0 siblings, 1 reply; 7+ messages in thread
From: Wolfgang Denk @ 2009-11-03 13:23 UTC (permalink / raw)
  To: u-boot

Dear Roman Zeyde,

In message <6d23e4ef0911030355j47a653a0iea7b6cae2f3cb180@mail.gmail.com> you wrote:
> 
> I have noticed that the same error as described here
> (http://lists.denx.de/pipermail/u-boot/2009-October/061913.html)
> happens when compiling the latest version of U-boot (v2009-11-rc1)
> using arm-cortex_a8-linux-gnueabi gcc version 4.4.0
> (crosstool-NG-hg_default at 1620_187e06178dcb).

This has been discussed here before. Please see the archives.

> Could you please apply the patch described above to resolve this issue?

No, I will not. This has to go through the ARM custodian first.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
The perversity of nature is nowhere better demonstrated by  the  fact
that,  when  exposed to the same atmosphere, bread becomes hard while
crackers become soft.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] Don't inline weak symbols
  2009-11-03 13:23 ` Wolfgang Denk
@ 2009-11-03 14:04   ` Tom
  0 siblings, 0 replies; 7+ messages in thread
From: Tom @ 2009-11-03 14:04 UTC (permalink / raw)
  To: u-boot

Wolfgang Denk wrote:
> Dear Roman Zeyde,
> 
> In message <6d23e4ef0911030355j47a653a0iea7b6cae2f3cb180@mail.gmail.com> you wrote:
>> I have noticed that the same error as described here
>> (http://lists.denx.de/pipermail/u-boot/2009-October/061913.html)
>> happens when compiling the latest version of U-boot (v2009-11-rc1)
>> using arm-cortex_a8-linux-gnueabi gcc version 4.4.0
>> (crosstool-NG-hg_default at 1620_187e06178dcb).
> 
> This has been discussed here before. Please see the archives.
> 
>> Could you please apply the patch described above to resolve this issue?
> 
> No, I will not. This has to go through the ARM custodian first.
> 
> Best regards,
> 
> Wolfgang Denk
> 

I am currently reviewing this patch.

After reviewing the history.
There is a interest in #if-defing this code.

The reason I can see is at least 2 of the start.S call

	bl	coloured_LED_init
	bl	red_LED_on

In general, what happens is they call into the weak
stubs.  Only if the cpu/board provides an overriding
function does these calls cause anything meaningful to
happen.

A good candidate for an if-def variable is the existing
CONFIG_STATUS_LED.

I am testing this change now.
Since it effects all the boards, I am using the regressions
of undefined symbol from MAKEALL arm to verify.

When this change is done there will only be a handful of
failures for the inline weak problem.

Then this patch to remove the inlines will take care of them.

I have looked at the assembly these produce and it does not
look different for non-inline to inline.  There was a slight
increase in the binary size (zoom2) of 8 bytes using
the code sourcry 2009.  For my roll-your-own gcc 4.4.2, the
size was about 400 bytes larger.  Of course it is harder to
tell since it wouldn't compile without the fix.

After I run through some more testing, I will send out
the patch set.

Tom

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] Don't inline weak symbols
  2009-08-05 18:14 Ron
  2009-08-05 21:07 ` Jean-Christophe PLAGNIOL-VILLARD
@ 2009-10-03 21:57 ` Wolfgang Denk
  1 sibling, 0 replies; 7+ messages in thread
From: Wolfgang Denk @ 2009-10-03 21:57 UTC (permalink / raw)
  To: u-boot

Dear Tom,

In message <20090805181400.GG11898@audi.shelbyville.oz> Ron Lee wrote:
> 
> GCC 4.4 complains about this now.
> 
> Signed-off-by: Ron Lee <ron@debian.org>
> ---
>  lib_arm/board.c |   18 +++++++++---------
>  1 files changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/lib_arm/board.c b/lib_arm/board.c
> index a44d308..02a55eb 100644
> --- a/lib_arm/board.c
> +++ b/lib_arm/board.c
> @@ -124,23 +124,23 @@ void *sbrk (ptrdiff_t increment)
>   * May be supplied by boards if desired
>   */
>  void inline __coloured_LED_init (void) {}
> -void inline coloured_LED_init (void) __attribute__((weak, alias("__coloured_LED_init")));
> +void coloured_LED_init (void) __attribute__((weak, alias("__coloured_LED_init")));
>  void inline __red_LED_on (void) {}
> -void inline red_LED_on (void) __attribute__((weak, alias("__red_LED_on")));
> +void red_LED_on (void) __attribute__((weak, alias("__red_LED_on")));
>  void inline __red_LED_off(void) {}
> -void inline red_LED_off(void)	     __attribute__((weak, alias("__red_LED_off")));
> +void red_LED_off(void) __attribute__((weak, alias("__red_LED_off")));
>  void inline __green_LED_on(void) {}
> -void inline green_LED_on(void) __attribute__((weak, alias("__green_LED_on")));
> +void green_LED_on(void) __attribute__((weak, alias("__green_LED_on")));
>  void inline __green_LED_off(void) {}
> -void inline green_LED_off(void)__attribute__((weak, alias("__green_LED_off")));
> +void green_LED_off(void) __attribute__((weak, alias("__green_LED_off")));
>  void inline __yellow_LED_on(void) {}
> -void inline yellow_LED_on(void)__attribute__((weak, alias("__yellow_LED_on")));
> +void yellow_LED_on(void) __attribute__((weak, alias("__yellow_LED_on")));
>  void inline __yellow_LED_off(void) {}
> -void inline yellow_LED_off(void)__attribute__((weak, alias("__yellow_LED_off")));
> +void yellow_LED_off(void) __attribute__((weak, alias("__yellow_LED_off")));
>  void inline __blue_LED_on(void) {}
> -void inline blue_LED_on(void)__attribute__((weak, alias("__blue_LED_on")));
> +void blue_LED_on(void) __attribute__((weak, alias("__blue_LED_on")));
>  void inline __blue_LED_off(void) {}
> -void inline blue_LED_off(void)__attribute__((weak, alias("__blue_LED_off")));
> +void blue_LED_off(void) __attribute__((weak, alias("__blue_LED_off")));
>  
>  /************************************************************************
>   * Init Utilities							*
> -- 

Do you have this patch on your list?

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Humans do claim a great deal for that particular emotion (love).
	-- Spock, "The Lights of Zetar", stardate 5725.6

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] Don't inline weak symbols
  2009-08-05 21:07 ` Jean-Christophe PLAGNIOL-VILLARD
@ 2009-08-05 21:21   ` Ron
  0 siblings, 0 replies; 7+ messages in thread
From: Ron @ 2009-08-05 21:21 UTC (permalink / raw)
  To: u-boot

On Wed, Aug 05, 2009 at 11:07:35PM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> On 03:44 Thu 06 Aug     , Ron wrote:
> > 
> > GCC 4.4 complains about this now.
> I'd remove the inline ot all

The compiler likely will already inline/eradicate the defaults there, since
the empty definition is visible to it, so yes, that would be valid too, and
might make that block a bit easier on the eyes :)

Cheers,
Ron

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] Don't inline weak symbols
  2009-08-05 18:14 Ron
@ 2009-08-05 21:07 ` Jean-Christophe PLAGNIOL-VILLARD
  2009-08-05 21:21   ` Ron
  2009-10-03 21:57 ` Wolfgang Denk
  1 sibling, 1 reply; 7+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2009-08-05 21:07 UTC (permalink / raw)
  To: u-boot

On 03:44 Thu 06 Aug     , Ron wrote:
> 
> GCC 4.4 complains about this now.
I'd remove the inline ot all

Best Regards,
J.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH] Don't inline weak symbols
@ 2009-08-05 18:14 Ron
  2009-08-05 21:07 ` Jean-Christophe PLAGNIOL-VILLARD
  2009-10-03 21:57 ` Wolfgang Denk
  0 siblings, 2 replies; 7+ messages in thread
From: Ron @ 2009-08-05 18:14 UTC (permalink / raw)
  To: u-boot


GCC 4.4 complains about this now.

Signed-off-by: Ron Lee <ron@debian.org>
---
 lib_arm/board.c |   18 +++++++++---------
 1 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/lib_arm/board.c b/lib_arm/board.c
index a44d308..02a55eb 100644
--- a/lib_arm/board.c
+++ b/lib_arm/board.c
@@ -124,23 +124,23 @@ void *sbrk (ptrdiff_t increment)
  * May be supplied by boards if desired
  */
 void inline __coloured_LED_init (void) {}
-void inline coloured_LED_init (void) __attribute__((weak, alias("__coloured_LED_init")));
+void coloured_LED_init (void) __attribute__((weak, alias("__coloured_LED_init")));
 void inline __red_LED_on (void) {}
-void inline red_LED_on (void) __attribute__((weak, alias("__red_LED_on")));
+void red_LED_on (void) __attribute__((weak, alias("__red_LED_on")));
 void inline __red_LED_off(void) {}
-void inline red_LED_off(void)	     __attribute__((weak, alias("__red_LED_off")));
+void red_LED_off(void) __attribute__((weak, alias("__red_LED_off")));
 void inline __green_LED_on(void) {}
-void inline green_LED_on(void) __attribute__((weak, alias("__green_LED_on")));
+void green_LED_on(void) __attribute__((weak, alias("__green_LED_on")));
 void inline __green_LED_off(void) {}
-void inline green_LED_off(void)__attribute__((weak, alias("__green_LED_off")));
+void green_LED_off(void) __attribute__((weak, alias("__green_LED_off")));
 void inline __yellow_LED_on(void) {}
-void inline yellow_LED_on(void)__attribute__((weak, alias("__yellow_LED_on")));
+void yellow_LED_on(void) __attribute__((weak, alias("__yellow_LED_on")));
 void inline __yellow_LED_off(void) {}
-void inline yellow_LED_off(void)__attribute__((weak, alias("__yellow_LED_off")));
+void yellow_LED_off(void) __attribute__((weak, alias("__yellow_LED_off")));
 void inline __blue_LED_on(void) {}
-void inline blue_LED_on(void)__attribute__((weak, alias("__blue_LED_on")));
+void blue_LED_on(void) __attribute__((weak, alias("__blue_LED_on")));
 void inline __blue_LED_off(void) {}
-void inline blue_LED_off(void)__attribute__((weak, alias("__blue_LED_off")));
+void blue_LED_off(void) __attribute__((weak, alias("__blue_LED_off")));
 
 /************************************************************************
  * Init Utilities							*
-- 
1.6.3.3

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2009-11-03 14:04 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-11-03 11:55 [U-Boot] [PATCH] Don't inline weak symbols Roman Zeyde
2009-11-03 13:23 ` Wolfgang Denk
2009-11-03 14:04   ` Tom
  -- strict thread matches above, loose matches on Subject: below --
2009-08-05 18:14 Ron
2009-08-05 21:07 ` Jean-Christophe PLAGNIOL-VILLARD
2009-08-05 21:21   ` Ron
2009-10-03 21:57 ` Wolfgang Denk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.