All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot-Users] [PATCH] objcopy for srec and bin files should be done on .o files
@ 2006-04-05 16:26 Martin Hicks
  2006-04-05 18:33 ` Wolfgang Denk
  0 siblings, 1 reply; 6+ messages in thread
From: Martin Hicks @ 2006-04-05 16:26 UTC (permalink / raw)
  To: u-boot

The Makefile rule for creating srec and bin files fails for me frequently.
I believe that we should be doing the ojbcopy on the .o files, not the ELF
binary.

Signed-off-by: Martin Hicks <mort@bork.org>

---

 examples/Makefile |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

35b9e5c91127f1428c6e207fe2bca76782ca5b36
diff --git a/examples/Makefile b/examples/Makefile
index 2f8c4c4..36fe2a3 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -123,10 +123,10 @@ $(LIB): .depend $(LIBOBJS)
 	$(LD) -g $(EX_LDFLAGS) -Ttext $(LOAD_ADDR) \
 		-o $@ -e $(<:.o=) $< $(LIB) \
 		-L$(gcclibdir) -lgcc
-%.srec:	%
+%.srec:	%.o
 	$(OBJCOPY) -O srec $< $@ 2>/dev/null
 
-%.bin:	%
+%.bin:	%.o
 	$(OBJCOPY) -O binary $< $@ 2>/dev/null
 
 #########################################################################
-- 
1.2.4


-- 
Martin Hicks || mort at bork.org || PGP/GnuPG: 0x4C7F2BEE

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

* [U-Boot-Users] [PATCH] objcopy for srec and bin files should be done on .o files
  2006-04-05 16:26 [U-Boot-Users] [PATCH] objcopy for srec and bin files should be done on .o files Martin Hicks
@ 2006-04-05 18:33 ` Wolfgang Denk
  2006-04-05 18:59   ` Martin Hicks
  0 siblings, 1 reply; 6+ messages in thread
From: Wolfgang Denk @ 2006-04-05 18:33 UTC (permalink / raw)
  To: u-boot

In message <20060405162645.GU27792@bork.org> you wrote:
> 
> The Makefile rule for creating srec and bin files fails for me frequently.

Plewase explain what "fails for me  means"  (error  message(s),  used
toolchain and versions of the binutils, host environment etc.).

> I believe that we should be doing the ojbcopy on the .o files, not the ELF
> binary.

I disagree. I see no reason to change this yet. First I woul like  to
at least understand which problem you are trying to fix.

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"I've seen it. It's rubbish."          - Marvin the Paranoid Android

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

* [U-Boot-Users] [PATCH] objcopy for srec and bin files should be done on .o files
  2006-04-05 18:33 ` Wolfgang Denk
@ 2006-04-05 18:59   ` Martin Hicks
  2006-04-05 21:04     ` Wolfgang Denk
  0 siblings, 1 reply; 6+ messages in thread
From: Martin Hicks @ 2006-04-05 18:59 UTC (permalink / raw)
  To: u-boot


On Wed, Apr 05, 2006 at 08:33:23PM +0200, Wolfgang Denk wrote:
> In message <20060405162645.GU27792@bork.org> you wrote:
> > 
> > The Makefile rule for creating srec and bin files fails for me frequently.
> 
> Plewase explain what "fails for me  means"  (error  message(s),  used
> toolchain and versions of the binutils, host environment etc.).

mort at descartes:~/src/targa/u-boot2$ make ASH405_config CROSS_COMPILE=powerpc-405-linux-gnu-
Configuring for ASH405 board...
mort at descartes:~/src/targa/u-boot2$ make CROSS_COMPILE=powerpc-405-linux-gnu-

[snip]

powerpc-405-linux-gnu-gcc -g  -Os   -fPIC -ffixed-r14 -meabi -fno-strict-aliasing -D__KERNEL__ -DTEXT_BASE=0xFFFC0000 -I/home/mort/src/targa/u-boot2/include -fno-builtin -ffreestanding -nostdinc -isystem /home/mort/src/targa/powerpc-linux/gcc-3.4.5-glibc-2.3.6/powerpc-405-linux-gnu/bin/../lib/gcc/powerpc-405-linux-gnu/3.4.5/include -pipe  -DCONFIG_PPC -D__powerpc__ -DCONFIG_4xx -ffixed-r2 -ffixed-r29 -mstring -Wa,-m405 -mcpu=405 -msoft-float -Wall -Wstrict-prototypes -c -o stubs.o stubs.c
powerpc-405-linux-gnu-ar crv libstubs.a  ppc_longjmp.o ppc_setjmp.o stubs.o
r - ppc_longjmp.o
r - ppc_setjmp.o
r - stubs.o
make[1]: *** No rule to make target `hello_world.srec', needed by `all'.  Stop.
make[1]: Leaving directory `/home/mort/src/targa/u-boot2/examples'
make: *** [examples] Error 2
mort at descartes:~/src/targa/u-boot2$ 


That's your git HEAD.  The problem is also present at the 1.1.4 tag.
I"m not actually using the ASH405, but I just used it as an example...

The compiler is a gcc-3.4.5/binutils-2.15 (and glibc-2.3.6) x86->ppc405
cross compiler built by crosstools-0.42

mh

-- 
Martin Hicks || mort at bork.org || PGP/GnuPG: 0x4C7F2BEE
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://lists.denx.de/pipermail/u-boot/attachments/20060405/312ee1ed/attachment.pgp 

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

* [U-Boot-Users] [PATCH] objcopy for srec and bin files should be done on .o files
  2006-04-05 18:59   ` Martin Hicks
@ 2006-04-05 21:04     ` Wolfgang Denk
  2006-04-05 22:03       ` Martin Hicks
  0 siblings, 1 reply; 6+ messages in thread
From: Wolfgang Denk @ 2006-04-05 21:04 UTC (permalink / raw)
  To: u-boot

In message <20060405185908.GW27792@bork.org> you wrote:
> 
> > Plewase explain what "fails for me  means"  (error  message(s),  used
> > toolchain and versions of the binutils, host environment etc.).
> 
> mort at descartes:~/src/targa/u-boot2$ make ASH405_config CROSS_COMPILE=powerpc-405-linux-gnu-
> Configuring for ASH405 board...
> mort at descartes:~/src/targa/u-boot2$ make CROSS_COMPILE=powerpc-405-linux-gnu-
> 
> [snip]
> 
> powerpc-405-linux-gnu-gcc -g  -Os   -fPIC -ffixed-r14 -meabi -fno-strict-aliasing -D__KERNEL__ -DTEXT_BASE=0xFFFC0000 -I/home/mort/src/targa/u-boot2/include -fno-builtin -ffreestanding -nostdinc -isystem /home/mort/src/targa/powerpc-linux/gcc-3.4.5-glibc-2.3.6/powerpc-405-linux-gnu/bin/../lib/gcc/powerpc-405-linux-gnu/3.4.5/include -pipe  -DCONFIG_PPC -D__powerpc__ -DCONFIG_4xx -ffixed-r2 -ffixed-r29 -mstring -Wa,-m405 -mcpu=405 -msoft-float -Wall -Wstrict-prototypes -c -o stubs.o stubs.c
> powerpc-405-linux-gnu-ar crv libstubs.a  ppc_longjmp.o ppc_setjmp.o stubs.o
> r - ppc_longjmp.o
> r - ppc_setjmp.o
> r - stubs.o
> make[1]: *** No rule to make target `hello_world.srec', needed by `all'.  Stop.

SSounds as if your Makefile  is  corrupted.  Of  course  there  is  a
hello_world.srec target in it. Or your version of "make" is broken...

> That's your git HEAD.  The problem is also present at the 1.1.4 tag.
> I"m not actually using the ASH405, but I just used it as an example...

Me too. Works perfectly fine here:

-> ./MAKEALL ASH405       
Configuring for ASH405 board...
   text    data     bss     dec     hex filename
 189384    9768   37456  236608   39c40 u-boot
->

No errors, no warnings.

> The compiler is a gcc-3.4.5/binutils-2.15 (and glibc-2.3.6) x86->ppc405
> cross compiler built by crosstools-0.42

Well, this is IMHO a toolchain problem. The  code  builds  fine  with
ELDK  3.x  (GC-3.3.3  /  binutils  2.14)  and  ELDK  4.x (GCC-4.0.0 /
binutils 2.16.1).

I think I reject your patch.

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"It is easier to port a shell than a shell script."      - Larry Wall

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

* [U-Boot-Users] [PATCH] objcopy for srec and bin files should be done on .o files
  2006-04-05 21:04     ` Wolfgang Denk
@ 2006-04-05 22:03       ` Martin Hicks
  2006-04-05 22:25         ` Wolfgang Denk
  0 siblings, 1 reply; 6+ messages in thread
From: Martin Hicks @ 2006-04-05 22:03 UTC (permalink / raw)
  To: u-boot

On Wed, Apr 05, 2006 at 11:04:04PM +0200, Wolfgang Denk wrote:
> 
> SSounds as if your Makefile  is  corrupted.  Of  course  there  is  a
> hello_world.srec target in it. Or your version of "make" is broken...

aha.  It's a make 3.80 vs. 3.81 problem...  Debian etch (testing)
already has 3.81 in it.  More people will start running into this
problem.

It still might be easier and less error prone to change the rule to use
the object files instead of the elf binary, but its up to you.

mh

-- 
Martin Hicks || mort at bork.org || PGP/GnuPG: 0x4C7F2BEE


[PATCH] Switch order of ELF and BIN objects for make 3.81

make 3.81 evaluates things a little differently.  Without this patch
the build fails as follows with make 3.81

make[1]: *** No rule to make target `hello_world.srec', needed by `all'.  Stop.
make[1]: Leaving directory `/home/mort/src/targa/u-boot/u-boot-TOT/examples'
make: *** [examples] Error 2

Compile tested with make 3.80 and 3.81

Signed-off-by: Martin Hicks <mort@bork.org>

---

 examples/Makefile |   18 +++++++++---------
 1 files changed, 9 insertions(+), 9 deletions(-)

fee8cad056b09b76425e027b49144d4e9664662e
diff --git a/examples/Makefile b/examples/Makefile
index fee2674..5386339 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -60,44 +60,44 @@ endif
 include $(TOPDIR)/config.mk
 
 SREC	= hello_world.srec
-BIN	= hello_world.bin hello_world
+BIN	= hello_world hello_world.bin
 
 ifeq ($(CPU),mpc8xx)
 SREC	= test_burst.srec
-BIN	= test_burst.bin test_burst
+BIN	= test_burst test_burst.bin
 endif
 
 ifeq ($(ARCH),i386)
 SREC   += 82559_eeprom.srec
-BIN    += 82559_eeprom.bin 82559_eeprom
+BIN    += 82559_eeprom 82559_eeprom.bin
 endif
 
 ifeq ($(ARCH),ppc)
 SREC   += sched.srec
-BIN    += sched.bin sched
+BIN    += sched sched.bin
 endif
 
 ifeq ($(ARCH),blackfin)
 SREC	+= smc91111_eeprom.srec
-BIN 	+= smc91111_eeprom.bin smc91111_eeprom
+BIN 	+= smc91111_eeprom smc91111_eeprom.bin
 endif
 
 # The following example is pretty 8xx specific...
 ifeq ($(CPU),mpc8xx)
 SREC   += timer.srec
-BIN    += timer.bin timer
+BIN    += timer timer.bin
 endif
 
 # The following example is 8260 specific...
 ifeq ($(CPU),mpc8260)
 SREC   += mem_to_mem_idma2intr.srec
-BIN    += mem_to_mem_idma2intr.bin mem_to_mem_idma2intr
+BIN    += mem_to_mem_idma2intr mem_to_mem_idma2intr.bin
 endif
 
 # Utility for resetting i82559 EEPROM
 ifeq ($(BOARD),oxc)
 SREC   += eepro100_eeprom.srec
-BIN    += eepro100_eeprom.bin eepro100_eeprom
+BIN    += eepro100_eeprom eepro100_eeprom.bin
 endif
 
 ifeq ($(BIG_ENDIAN),y)
@@ -122,7 +122,7 @@ clibdir := $(shell dirname `$(CC) $(CFLA
 
 CPPFLAGS += -I..
 
-all:	.depend $(OBJS) $(LIB) $(SREC) $(BIN)
+all:	.depend $(OBJS) $(LIB) $(BIN) $(SREC)
 
 #########################################################################
 $(LIB): .depend $(LIBOBJS)
-- 
1.2.4

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

* [U-Boot-Users] [PATCH] objcopy for srec and bin files should be done on .o files
  2006-04-05 22:03       ` Martin Hicks
@ 2006-04-05 22:25         ` Wolfgang Denk
  0 siblings, 0 replies; 6+ messages in thread
From: Wolfgang Denk @ 2006-04-05 22:25 UTC (permalink / raw)
  To: u-boot

In message <20060405220344.GX27792@bork.org> you wrote:
> 
> aha.  It's a make 3.80 vs. 3.81 problem...  Debian etch (testing)
> already has 3.81 in it.  More people will start running into this
> problem.

Then either it's a bug in the existing make rules, which I would like
to understand and fix, or it's a bug in make, which needs fixing.

> It still might be easier and less error prone to change the rule to use
> the object files instead of the elf binary, but its up to you.

No, This is the way of least  resistence  which  will  leave  unknown
error  conditions  here and there which will bite again later. Please
don't ignore errors, fix them!

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
As far as the laws of mathematics refer to reality, they are not cer-
tain, and as far as they are certain, they do not refer  to  reality.
                                                   -- Albert Einstein

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

end of thread, other threads:[~2006-04-05 22:25 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-04-05 16:26 [U-Boot-Users] [PATCH] objcopy for srec and bin files should be done on .o files Martin Hicks
2006-04-05 18:33 ` Wolfgang Denk
2006-04-05 18:59   ` Martin Hicks
2006-04-05 21:04     ` Wolfgang Denk
2006-04-05 22:03       ` Martin Hicks
2006-04-05 22:25         ` 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.