All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.