[OE-core] [PATCH v6] syslinux: Update to 4.06

Jonathan Liu net147 at gmail.com
Mon May 6 22:35:43 UTC 2013


On 7/05/2013 8:17 AM, Jonathan Liu wrote:
> On 7/05/2013 7:05 AM, Saul Wold wrote:
>>
>>
>> On 05/06/2013 05:31 AM, Jonathan Liu wrote:
>>> Patches are now part of upstream or no longer needed.
>>> Added new util-linux dependency for isohybrid.
>>> Paths updated to reflect directory structure changes.
>>>
>>> INCDIR isn't used by the build process during compilation which results
>>> in the compiler not finding uuid/uuid.h from util-linux when compiling
>>> isohybrid unless it exists on the host system. This was fixed by adding
>>> -isystem ${STAGING_INCDIR} to CC when calling make.
>>>
>>
>> I am not sure what's changing in all these version since you have not 
>> added a changelog.  This version still has trouble with building 
>> isohybrid.
>>
>> I am not sure what you are doing to test this, but I would like to 
>> see a more information about how you are building and testing this 
>> before I take another version and find it will fail.
>>
>> I appreciate the work it takes to update a recipe, but we need to get 
>> it correct and tested
> v1 - Patch malformed by email client
> v2 - Added util-linux-native dependency.
> Resent patch directly using git send-email
> isohybrid.c:39:23: fatal error: uuid/uuid.h: No such file or directory
> v3 - Changed util-linux-native dependency to util-linux so ot will 
> work when building for target as well.
> Recipe finds uuid/uuid.h but from my syslinux installed on my host so 
> it appeared everything compiled fine but it didn't.
> v4 - Added -I${includedir} to CC when calling make.
> This didn't work because includedir is /usr/include when it should 
> point to the /usr/include in the sysroot.
> v5 - Changed -I${includedir} to -isystem ${includedir}.
> Still didn't work because includedir is /usr/include when it should 
> point to the /usr/include in the sysroot.
> I was changed to -isystem after reading GCC manual. I figured it was 
> better for it to search its local source files first because checking 
> system include directories like /usr/include.
> v6 - Changed -isystem ${includedir} to -isystem ${STAGING_INCDIR}.
>
> Testing:
> I am using a custom image based on atom-pc core-image-minimal, with 
> .hddimage output.
> Tested changes using "bitbake -c cleansstate syslinux syslinux-native; 
> bitbake syslinux syslinux-native".
> For testing v6, did a clean rebuild of everything, renamed 
> /usr/include/uuid.h to /usr/include/uuid.h.bak on my host system and 
> tests it:
> 1. Fails without the patch - ok
> 2. Succeeds with the patch - ok
I have tested syslinux 4.06 booting with .hddimg on:
-Intel Desktop Board D2500HN (Atom D2500 with NM10 Express Chipset), by 
writing .hddimg to real hard drive with Win32 Disk Imager and connecting 
to the board
-qemu-system-i386
-qemu-system-i386 -nographic

The main reason for me upgrading to 4.06 is that earlier versions fail 
to boot on the D2500HN board more than once. First boot works but 
subsequent boots hang - it just prints SYSLINUX line, does nothing for a 
while and reboots the system. I found mounting the hard drive on a 
Windows system and unmounting it makes it boot again once. I finally got 
it to boot reliably after writing syslinux 4.06 to the hard drive. I 
tested syslinux 4.05 but it still had same booting issue.

Regards,
Jonathan






More information about the Openembedded-core mailing list