* [PATCH] x86, build: Improve the isolinux searching of isoimage generation
@ 2017-10-31 4:45 changbin.du
2017-10-31 9:39 ` Ingo Molnar
0 siblings, 1 reply; 4+ messages in thread
From: changbin.du @ 2017-10-31 4:45 UTC (permalink / raw)
To: hpa, tglx; +Cc: mingo, x86, linux-kernel, Changbin Du
From: Changbin Du <changbin.du@intel.com>
Recently I failed to build isoimage target, because the path of isolinux.bin
changed to /usr/xxx/ISOLINUX/isolinux.bin, as well as ldlinux.c32 which
changed to /usr/xxx/syslinux/modules/bios/ldlinux.c32.
This patch has a improvement of the file search:
- Don't print the raw shell commands. It doesn't make sense to show the
entire big block.
- Show a error message instead of silent fail.
- Add above new paths.
Now it becomes:
Kernel: arch/x86/boot/bzImage is ready (#62)
rm -rf arch/x86/boot/isoimage
mkdir arch/x86/boot/isoimage
Using /usr/lib/ISOLINUX/isolinux.bin
Using /usr/lib/syslinux/modules/bios/ldlinux.c32
cp arch/x86/boot/bzImage arch/x86/boot/isoimage/linux
...
Before:
Kernel: arch/x86/boot/bzImage is ready (#63)
rm -rf arch/x86/boot/isoimage
mkdir arch/x86/boot/isoimage
for i in lib lib64 share end ; do \
if [ -f /usr/$i/syslinux/isolinux.bin ] ; then \
cp /usr/$i/syslinux/isolinux.bin arch/x86/boot/isoimage ; \
if [ -f /usr/$i/syslinux/ldlinux.c32 ]; then \
cp /usr/$i/syslinux/ldlinux.c32 arch/x86/boot/isoimage ; \
fi ; \
break ; \
fi ; \
if [ $i = end ] ; then exit 1 ; fi ; \
done
arch/x86/boot/Makefile:161: recipe for target 'isoimage' failed
make[1]: *** [isoimage] Error 1
Signed-off-by: Changbin Du <changbin.du@intel.com>
---
arch/x86/boot/Makefile | 25 +++++++++++++++++++------
1 file changed, 19 insertions(+), 6 deletions(-)
diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile
index d88a2fd..8425c2f 100644
--- a/arch/x86/boot/Makefile
+++ b/arch/x86/boot/Makefile
@@ -160,15 +160,28 @@ fdimage288: $(obj)/bzImage $(obj)/mtools.conf
isoimage: $(obj)/bzImage
-rm -rf $(obj)/isoimage
mkdir $(obj)/isoimage
- for i in lib lib64 share end ; do \
- if [ -f /usr/$$i/syslinux/isolinux.bin ] ; then \
- cp /usr/$$i/syslinux/isolinux.bin $(obj)/isoimage ; \
- if [ -f /usr/$$i/syslinux/ldlinux.c32 ]; then \
- cp /usr/$$i/syslinux/ldlinux.c32 $(obj)/isoimage ; \
+ @for i in lib lib64 share end ; do \
+ for j in syslinux ISOLINUX ; do \
+ if [ -f /usr/$$i/$$j/isolinux.bin ] ; then \
+ isolinux=/usr/$$i/$$j/isolinux.bin ; \
+ echo "Using $$isolinux" ; \
+ cp $$isolinux $(obj)/isoimage ; \
fi ; \
+ done ; \
+ for j in syslinux syslinux/modules/bios ; do \
+ if [ -f /usr/$$i/$$j/ldlinux.c32 ]; then \
+ ldlinux=/usr/$$i/$$j/ldlinux.c32 ; \
+ echo "Using $$ldlinux" ; \
+ cp $$ldlinux $(obj)/isoimage ; \
+ fi ; \
+ done ; \
+ if [ -n "$$isolinux" -a -n "$$ldlinux" ] ; then \
break ; \
fi ; \
- if [ $$i = end ] ; then exit 1 ; fi ; \
+ if [ $$i = end -a -z "$$isolinux" ] ; then \
+ echo 'Need isolinux.bin, please install syslinux/isolinux' ; \
+ exit 1 ; \
+ fi ; \
done
cp $(obj)/bzImage $(obj)/isoimage/linux
echo '$(image_cmdline)' > $(obj)/isoimage/isolinux.cfg
--
2.7.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] x86, build: Improve the isolinux searching of isoimage generation
2017-10-31 4:45 [PATCH] x86, build: Improve the isolinux searching of isoimage generation changbin.du
@ 2017-10-31 9:39 ` Ingo Molnar
2017-11-01 3:17 ` Masahiro Yamada
0 siblings, 1 reply; 4+ messages in thread
From: Ingo Molnar @ 2017-10-31 9:39 UTC (permalink / raw)
To: changbin.du, Masahiro Yamada, Michal Marek
Cc: hpa, tglx, mingo, x86, linux-kernel
* changbin.du@intel.com <changbin.du@intel.com> wrote:
> From: Changbin Du <changbin.du@intel.com>
>
> Recently I failed to build isoimage target, because the path of isolinux.bin
> changed to /usr/xxx/ISOLINUX/isolinux.bin, as well as ldlinux.c32 which
> changed to /usr/xxx/syslinux/modules/bios/ldlinux.c32.
>
> This patch has a improvement of the file search:
> - Don't print the raw shell commands. It doesn't make sense to show the
> entire big block.
> - Show a error message instead of silent fail.
> - Add above new paths.
>
> Now it becomes:
> Kernel: arch/x86/boot/bzImage is ready (#62)
> rm -rf arch/x86/boot/isoimage
> mkdir arch/x86/boot/isoimage
> Using /usr/lib/ISOLINUX/isolinux.bin
> Using /usr/lib/syslinux/modules/bios/ldlinux.c32
> cp arch/x86/boot/bzImage arch/x86/boot/isoimage/linux
> ...
>
> Before:
> Kernel: arch/x86/boot/bzImage is ready (#63)
> rm -rf arch/x86/boot/isoimage
> mkdir arch/x86/boot/isoimage
> for i in lib lib64 share end ; do \
> if [ -f /usr/$i/syslinux/isolinux.bin ] ; then \
> cp /usr/$i/syslinux/isolinux.bin arch/x86/boot/isoimage ; \
> if [ -f /usr/$i/syslinux/ldlinux.c32 ]; then \
> cp /usr/$i/syslinux/ldlinux.c32 arch/x86/boot/isoimage ; \
> fi ; \
> break ; \
> fi ; \
> if [ $i = end ] ; then exit 1 ; fi ; \
> done
> arch/x86/boot/Makefile:161: recipe for target 'isoimage' failed
> make[1]: *** [isoimage] Error 1
I like these changes. Could we please further improve it: for example the boot
image build messages are still pretty unstructured, while regular build system
messages come in the following format:
CC arch/x86/events/msr.o
RELOCS arch/x86/realmode/rm/realmode.relocs
OBJCOPY arch/x86/realmode/rm/realmode.bin
CC arch/x86/kernel/signal.o
AS arch/x86/realmode/rmpiggy.o
CC ipc/msg.o
AR arch/x86/ia32/built-in.o
CC arch/x86/events/amd/iommu.o
CC init/do_mounts.o
AR arch/x86/realmode/built-in.o
So instead of:
> Kernel: arch/x86/boot/bzImage is ready (#62)
> rm -rf arch/x86/boot/isoimage
> mkdir arch/x86/boot/isoimage
> Using /usr/lib/ISOLINUX/isolinux.bin
> Using /usr/lib/syslinux/modules/bios/ldlinux.c32
> cp arch/x86/boot/bzImage arch/x86/boot/isoimage/linux
Could we make it something more streamlined and similar to the rest of the build
as well, like:
GEN arch/x86/boot/bzImage
GEN arch/x86/boot/isoimage
GEN arch/x86/boot/isoimage/linux
I.e. only mention the new files built, with an appropriate prefix.
I've Cc:-ed the kbuild maintainers, maybe they have a better suggestion instead of
the 'GEN' abbreviation?
Thanks,
Ingo
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] x86, build: Improve the isolinux searching of isoimage generation
2017-10-31 9:39 ` Ingo Molnar
@ 2017-11-01 3:17 ` Masahiro Yamada
2017-11-01 14:28 ` Du, Changbin
0 siblings, 1 reply; 4+ messages in thread
From: Masahiro Yamada @ 2017-11-01 3:17 UTC (permalink / raw)
To: Ingo Molnar
Cc: changbin.du, Michal Marek, H. Peter Anvin, Thomas Gleixner,
Ingo Molnar, X86 ML, Linux Kernel Mailing List
2017-10-31 18:39 GMT+09:00 Ingo Molnar <mingo@kernel.org>:
>
> * changbin.du@intel.com <changbin.du@intel.com> wrote:
>
>> From: Changbin Du <changbin.du@intel.com>
>>
>> Recently I failed to build isoimage target, because the path of isolinux.bin
>> changed to /usr/xxx/ISOLINUX/isolinux.bin, as well as ldlinux.c32 which
>> changed to /usr/xxx/syslinux/modules/bios/ldlinux.c32.
>>
>> This patch has a improvement of the file search:
>> - Don't print the raw shell commands. It doesn't make sense to show the
>> entire big block.
>> - Show a error message instead of silent fail.
>> - Add above new paths.
>>
>> Now it becomes:
>> Kernel: arch/x86/boot/bzImage is ready (#62)
>> rm -rf arch/x86/boot/isoimage
>> mkdir arch/x86/boot/isoimage
>> Using /usr/lib/ISOLINUX/isolinux.bin
>> Using /usr/lib/syslinux/modules/bios/ldlinux.c32
>> cp arch/x86/boot/bzImage arch/x86/boot/isoimage/linux
>> ...
>>
>> Before:
>> Kernel: arch/x86/boot/bzImage is ready (#63)
>> rm -rf arch/x86/boot/isoimage
>> mkdir arch/x86/boot/isoimage
>> for i in lib lib64 share end ; do \
>> if [ -f /usr/$i/syslinux/isolinux.bin ] ; then \
>> cp /usr/$i/syslinux/isolinux.bin arch/x86/boot/isoimage ; \
>> if [ -f /usr/$i/syslinux/ldlinux.c32 ]; then \
>> cp /usr/$i/syslinux/ldlinux.c32 arch/x86/boot/isoimage ; \
>> fi ; \
>> break ; \
>> fi ; \
>> if [ $i = end ] ; then exit 1 ; fi ; \
>> done
>> arch/x86/boot/Makefile:161: recipe for target 'isoimage' failed
>> make[1]: *** [isoimage] Error 1
>
> I like these changes. Could we please further improve it: for example the boot
> image build messages are still pretty unstructured, while regular build system
> messages come in the following format:
>
> CC arch/x86/events/msr.o
> RELOCS arch/x86/realmode/rm/realmode.relocs
> OBJCOPY arch/x86/realmode/rm/realmode.bin
> CC arch/x86/kernel/signal.o
> AS arch/x86/realmode/rmpiggy.o
> CC ipc/msg.o
> AR arch/x86/ia32/built-in.o
> CC arch/x86/events/amd/iommu.o
> CC init/do_mounts.o
> AR arch/x86/realmode/built-in.o
>
> So instead of:
>
>> Kernel: arch/x86/boot/bzImage is ready (#62)
>> rm -rf arch/x86/boot/isoimage
>> mkdir arch/x86/boot/isoimage
>> Using /usr/lib/ISOLINUX/isolinux.bin
>> Using /usr/lib/syslinux/modules/bios/ldlinux.c32
>> cp arch/x86/boot/bzImage arch/x86/boot/isoimage/linux
>
> Could we make it something more streamlined and similar to the rest of the build
> as well, like:
>
> GEN arch/x86/boot/bzImage
> GEN arch/x86/boot/isoimage
> GEN arch/x86/boot/isoimage/linux
>
> I.e. only mention the new files built, with an appropriate prefix.
>
> I've Cc:-ed the kbuild maintainers, maybe they have a better suggestion instead of
> the 'GEN' abbreviation?
>
Generally, the abbreviation is the tool that has processed the target,
but if you do not find an appropriate one, 'GEN' is fine.
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] x86, build: Improve the isolinux searching of isoimage generation
2017-11-01 3:17 ` Masahiro Yamada
@ 2017-11-01 14:28 ` Du, Changbin
0 siblings, 0 replies; 4+ messages in thread
From: Du, Changbin @ 2017-11-01 14:28 UTC (permalink / raw)
To: Masahiro Yamada
Cc: Ingo Molnar, changbin.du, Michal Marek, H. Peter Anvin,
Thomas Gleixner, Ingo Molnar, X86 ML, Linux Kernel Mailing List
[-- Attachment #1: Type: text/plain, Size: 3491 bytes --]
Hi Ingo and Yamada,
Thanks for your suggestions. I'll have a try though I am not familiar with kbuild system.
On Wed, Nov 01, 2017 at 12:17:50PM +0900, Masahiro Yamada wrote:
> 2017-10-31 18:39 GMT+09:00 Ingo Molnar <mingo@kernel.org>:
> >
> > * changbin.du@intel.com <changbin.du@intel.com> wrote:
> >
> >> From: Changbin Du <changbin.du@intel.com>
> >>
> >> Recently I failed to build isoimage target, because the path of isolinux.bin
> >> changed to /usr/xxx/ISOLINUX/isolinux.bin, as well as ldlinux.c32 which
> >> changed to /usr/xxx/syslinux/modules/bios/ldlinux.c32.
> >>
> >> This patch has a improvement of the file search:
> >> - Don't print the raw shell commands. It doesn't make sense to show the
> >> entire big block.
> >> - Show a error message instead of silent fail.
> >> - Add above new paths.
> >>
> >> Now it becomes:
> >> Kernel: arch/x86/boot/bzImage is ready (#62)
> >> rm -rf arch/x86/boot/isoimage
> >> mkdir arch/x86/boot/isoimage
> >> Using /usr/lib/ISOLINUX/isolinux.bin
> >> Using /usr/lib/syslinux/modules/bios/ldlinux.c32
> >> cp arch/x86/boot/bzImage arch/x86/boot/isoimage/linux
> >> ...
> >>
> >> Before:
> >> Kernel: arch/x86/boot/bzImage is ready (#63)
> >> rm -rf arch/x86/boot/isoimage
> >> mkdir arch/x86/boot/isoimage
> >> for i in lib lib64 share end ; do \
> >> if [ -f /usr/$i/syslinux/isolinux.bin ] ; then \
> >> cp /usr/$i/syslinux/isolinux.bin arch/x86/boot/isoimage ; \
> >> if [ -f /usr/$i/syslinux/ldlinux.c32 ]; then \
> >> cp /usr/$i/syslinux/ldlinux.c32 arch/x86/boot/isoimage ; \
> >> fi ; \
> >> break ; \
> >> fi ; \
> >> if [ $i = end ] ; then exit 1 ; fi ; \
> >> done
> >> arch/x86/boot/Makefile:161: recipe for target 'isoimage' failed
> >> make[1]: *** [isoimage] Error 1
> >
> > I like these changes. Could we please further improve it: for example the boot
> > image build messages are still pretty unstructured, while regular build system
> > messages come in the following format:
> >
> > CC arch/x86/events/msr.o
> > RELOCS arch/x86/realmode/rm/realmode.relocs
> > OBJCOPY arch/x86/realmode/rm/realmode.bin
> > CC arch/x86/kernel/signal.o
> > AS arch/x86/realmode/rmpiggy.o
> > CC ipc/msg.o
> > AR arch/x86/ia32/built-in.o
> > CC arch/x86/events/amd/iommu.o
> > CC init/do_mounts.o
> > AR arch/x86/realmode/built-in.o
> >
> > So instead of:
> >
> >> Kernel: arch/x86/boot/bzImage is ready (#62)
> >> rm -rf arch/x86/boot/isoimage
> >> mkdir arch/x86/boot/isoimage
> >> Using /usr/lib/ISOLINUX/isolinux.bin
> >> Using /usr/lib/syslinux/modules/bios/ldlinux.c32
> >> cp arch/x86/boot/bzImage arch/x86/boot/isoimage/linux
> >
> > Could we make it something more streamlined and similar to the rest of the build
> > as well, like:
> >
> > GEN arch/x86/boot/bzImage
> > GEN arch/x86/boot/isoimage
> > GEN arch/x86/boot/isoimage/linux
> >
> > I.e. only mention the new files built, with an appropriate prefix.
> >
> > I've Cc:-ed the kbuild maintainers, maybe they have a better suggestion instead of
> > the 'GEN' abbreviation?
> >
>
> Generally, the abbreviation is the tool that has processed the target,
> but if you do not find an appropriate one, 'GEN' is fine.
>
>
>
>
> --
> Best Regards
> Masahiro Yamada
--
Thanks,
Changbin Du
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-11-01 14:36 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-31 4:45 [PATCH] x86, build: Improve the isolinux searching of isoimage generation changbin.du
2017-10-31 9:39 ` Ingo Molnar
2017-11-01 3:17 ` Masahiro Yamada
2017-11-01 14:28 ` Du, Changbin
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.