Dear Ilko Iliev,
In message <[EMAIL PROTECTED]> you wrote:
>
> > Maybe instead of adding mor #ifdef'ery here, we can turn
> > lowlevel_init() into a "weak" function that can be redefined by board
> > specific code?
> The lowlevel_init() is an assembler function called from another
> assembler function and the attribute .weak doesn't work.
What do you mean by "attribute .weak doesn't work" ?
> There are no assembler file in the U-BOOT tree which use weak functions.
> Do you know how can I make an assembler function weak?
Well, if you don't know, then don't ask me, ask your compiler - he
knows how to do this.
For example, common/cmd_boot.c has this code snippet right at the
beginning:
30
31 /* Allow ports to override the default behavior */
32 __attribute__((weak))
33 unsigned long do_go_exec (ulong (*entry)(int, char *[]), int argc, char
*argv[])
34 {
35 return entry (argc, argv);
36 }
Compile this with -S option, and you get this:
12 .Ltext0:
13 .align 2
14 .weak do_go_exec
15 .type do_go_exec, @function
16 do_go_exec:
17 .LFB87:
18 .file 1 "cmd_boot.c"
19 .loc 1 34 0
20 .LVL0:
21 mflr 0
22 .LCFI0:
23 stwu 1,-16(1)
...
So to me it seems as if the attribute .weak is supposed to work just fine.
What exactly is not working for you?
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: [EMAIL PROTECTED]
"You shouldn't make my toaster angry." - Household security explained
in "Johnny Quest"
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot