Re: [PATCH] MIPS: vmlinuz: gather some string functions into string.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, 28 Sep 2013 19:32:23 +0200
Florian Fainelli <f.fainelli@xxxxxxxxx> wrote:

> Hello,
> 
> Le 28/09/2013 17:42, Antony Pavlov a écrit :
> > This patch fixes linker error:
> >
> >      LD    vmlinuz
> >    arch/mips/boot/compressed/decompress.o: In function `decompress_kernel':
> >    decompress.c:(.text+0x754): undefined reference to `memcpy'
> >    make[1]: *** [vmlinuz] Error 1
> >
> > Which appears when compiling vmlinuz image with CONFIG_KERNEL_LZO=y.
> 
> You would have to rebase this on top of mips-for-linux-next which 
> contains a bit more ifdef for supporting LZ4 and XZ otherwise the first 
> hunk of the patch does not apply.

My bad, I found your "[PATCH v2] MIPS: ZBOOT: support LZ4 compression scheme" patch
__after__ sending my patches.

Unfortunately I can't get access to the mips-for-linux-next branch:

* the git://git.linux-mips.org/pub/scm/ralf/linux.git repo contain only the *-stable
branches;
* I can't clone linux-queue.git (see below).

$ git clone git://git.linux-mips.org/pub/scm/ralf/linux-queue.git
Cloning into 'linux-queue'...
fatal: remote error: access denied or repository not exported: /pub/scm/ralf/linux-queue.git

How can I obtain the mips-for-linux-next branch?

> Regarding the contents of the patch, you are somehow changing the 
> existing compressor code by unconditionnaly providing a memset and 
> memcpy implementation, which is fine per se but should be mentioned at 
> least.
> 
> >
> > Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx>
> > ---
> >   arch/mips/boot/compressed/Makefile     |  4 ++--
> >   arch/mips/boot/compressed/decompress.c | 19 -------------------
> >   arch/mips/boot/compressed/string.c     | 28 ++++++++++++++++++++++++++++
> >   3 files changed, 30 insertions(+), 21 deletions(-)
> >   create mode 100644 arch/mips/boot/compressed/string.c
> >
> > diff --git a/arch/mips/boot/compressed/Makefile b/arch/mips/boot/compressed/Makefile
> > index 0048c08..30e30d4 100644
> > --- a/arch/mips/boot/compressed/Makefile
> > +++ b/arch/mips/boot/compressed/Makefile
> > @@ -27,10 +27,10 @@ KBUILD_AFLAGS := $(LINUXINCLUDE) $(KBUILD_AFLAGS) -D__ASSEMBLY__ \
> >   	-DBOOT_HEAP_SIZE=$(BOOT_HEAP_SIZE) \
> >   	-DKERNEL_ENTRY=$(VMLINUX_ENTRY_ADDRESS)
> >
> > -targets := head.o decompress.o dbg.o uart-16550.o uart-alchemy.o
> > +targets := head.o decompress.o string.o dbg.o uart-16550.o uart-alchemy.o
> >
> >   # decompressor objects (linked with vmlinuz)
> > -vmlinuzobjs-y := $(obj)/head.o $(obj)/decompress.o $(obj)/dbg.o
> > +vmlinuzobjs-y := $(obj)/head.o $(obj)/decompress.o $(obj)/string.o $(obj)/dbg.o
> >
> >   ifdef CONFIG_DEBUG_ZBOOT
> >   vmlinuzobjs-$(CONFIG_SYS_SUPPORTS_ZBOOT_UART16550) += $(obj)/uart-16550.o
> > diff --git a/arch/mips/boot/compressed/decompress.c b/arch/mips/boot/compressed/decompress.c
> > index 2c95730..fc1f294 100644
> > --- a/arch/mips/boot/compressed/decompress.c
> > +++ b/arch/mips/boot/compressed/decompress.c
> > @@ -44,29 +44,10 @@ void error(char *x)
> >   #define STATIC static
> >
> >   #ifdef CONFIG_KERNEL_GZIP
> > -void *memcpy(void *dest, const void *src, size_t n)
> > -{
> > -	int i;
> > -	const char *s = src;
> > -	char *d = dest;
> > -
> > -	for (i = 0; i < n; i++)
> > -		d[i] = s[i];
> > -	return dest;
> > -}
> >   #include "../../../../lib/decompress_inflate.c"
> >   #endif
> >
> >   #ifdef CONFIG_KERNEL_BZIP2
> > -void *memset(void *s, int c, size_t n)
> > -{
> > -	int i;
> > -	char *ss = s;
> > -
> > -	for (i = 0; i < n; i++)
> > -		ss[i] = c;
> > -	return s;
> > -}
> >   #include "../../../../lib/decompress_bunzip2.c"
> >   #endif
> >
> > diff --git a/arch/mips/boot/compressed/string.c b/arch/mips/boot/compressed/string.c
> > new file mode 100644
> > index 0000000..49e6db0
> > --- /dev/null
> > +++ b/arch/mips/boot/compressed/string.c
> > @@ -0,0 +1,28 @@
> > +/*
> > + * arch/mips/boot/compressed/string.c
> > + *
> > + * Very small subset of simple string routines
> > + */
> > +
> > +#include <linux/string.h>
> > +
> > +void *memcpy(void *dest, const void *src, size_t n)
> > +{
> > +	int i;
> > +	const char *s = src;
> > +	char *d = dest;
> > +
> > +	for (i = 0; i < n; i++)
> > +		d[i] = s[i];
> > +	return dest;
> > +}
> > +
> > +void *memset(void *s, int c, size_t n)
> > +{
> > +	int i;
> > +	char *ss = s;
> > +
> > +	for (i = 0; i < n; i++)
> > +		ss[i] = c;
> > +	return s;
> > +}
> >
> 


-- 
-- 
Best regards,
  Antony Pavlov


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux