Hi Julius,

On 2 October 2015 at 23:18, Julius Werner <jwer...@chromium.org> wrote:
>>
>> I get this build error with sandbox.
>>
>> test/built-in.o: In function `uncompress_using_lz4':
>> /home/sjg/c/src/third_party/u-boot/files/test/compression.c:278:
>> undefined reference to `ulz4fn'
>
>
> Yeah... that's because you didn't configure it in. I'm not really sure how 
> this is supposed to work... there should really be some sort of dependency 
> between selecting the compression tests and selecting the algorithm, or the 
> algorithms should be #ifdefed out like in bootm.c. But neither of those seems 
> to be in place right now... include/configs/sandbox.h just enables all the 
> other compression algorithms, that's why it works for them.
>
> I could add a 'select LZ4' to config UNIT_TEST in the Kconfig to create such 
> a dependency, I think that would be the best option?

Sounds good. I think it makes sense to enable all possible options in
sandbox - since it helps with build testing too.

>
>> You should be able to run the tests using:
>>
>> make O=sandbox defconfig all
>>  ./sandbox/u-boot -c "ut_compression"
>
>
> I tried, but I can't find myself through the SDL dependency hell... sorry. I 
> installed Ubuntu's libsdl2-dev but apparently that wasn't enough... I still 
> get "make[2]: sdl-config: Command not found" and 
> "../arch/sandbox/cpu/sdl.c:9:21: fatal error: SDL/SDL.h: No such file or 
> directory" when I'm trying to build. (I ran it with make -k now so I 
> confirmed that it builds both lib/lz4_wrapper.o and test/compression.o 
> without errors. I just can't test the linking step.)

You can build U-Boot with NO_SDL=1

I have this on my goobuntu laptop:

~> dpkg -l |grep -i sdl
ii  libsdl1.2-dev
1.2.15-8ubuntu1.1                                   amd64
Simple DirectMedia Layer development files
ii  libsdl1.2debian:amd64
1.2.15-8ubuntu1.1                                   amd64
Simple DirectMedia Layer

>
>>
>> Can you instead add this option to lib/Kconfig and put your help
>> there? We are moving away from the old CONFIGS.
>
>
> Done in next version.
>
>> You should be able to replace this license with
>>
>> SPDX-License-Identifier: BSD-2-Clause
>> [...]
>> Should be able to use:
>>
>>  SPDX-License-Identifier: GPL-2.0+ BSD-2-Clause
>
>
> Done in next version.
>
>>
>> I can see why you want to keep lz4.c as is. But this file is written
>> by you, isn't it? If so, can you fix the checkpatch errors that are
>> fixable (e.g. run 'patman').
>>
>> warning: lib/lz4_wrapper.c,41: do not add new typedefs
>> warning: lib/lz4_wrapper.c,42: do not add new typedefs
>> warning: lib/lz4_wrapper.c,43: do not add new typedefs
>> warning: lib/lz4_wrapper.c,44: do not add new typedefs
>> warning: lib/lz4_wrapper.c,45: do not add new typedefs
>> warning: lib/lz4_wrapper.c,47: storage class should be at the
>> beginning of the declaration
>> error: lib/lz4_wrapper.c,59: spaces prohibited around that ':' (ctx:WxW)
>> error: lib/lz4_wrapper.c,60: spaces prohibited around that ':' (ctx:WxW)
>> error: lib/lz4_wrapper.c,61: spaces prohibited around that ':' (ctx:WxW)
>> error: lib/lz4_wrapper.c,62: spaces prohibited around that ':' (ctx:WxW)
>> error: lib/lz4_wrapper.c,63: spaces prohibited around that ':' (ctx:WxW)
>> error: lib/lz4_wrapper.c,64: spaces prohibited around that ':' (ctx:WxW)
>> error: lib/lz4_wrapper.c,70: spaces prohibited around that ':' (ctx:WxW)
>> error: lib/lz4_wrapper.c,71: spaces prohibited around that ':' (ctx:WxW)
>> error: lib/lz4_wrapper.c,72: spaces prohibited around that ':' (ctx:WxW)
>> warning: lib/lz4_wrapper.c,77: __packed is preferred over
>> __attribute__((packed))
>> warning: lib/lz4_wrapper.c,77: Adding new packed members is to be done with 
>> care
>> error: lib/lz4_wrapper.c,83: spaces prohibited around that ':' (ctx:WxW)
>> error: lib/lz4_wrapper.c,84: spaces prohibited around that ':' (ctx:WxW)
>> warning: lib/lz4_wrapper.c,89: __packed is preferred over
>> __attribute__((packed))
>> warning: lib/lz4_wrapper.c,89: Adding new packed members is to be done with 
>> care
>> error: test/compression.c,282: return is not a function, parentheses
>> are not required
>
>
> Okay, I replaced __attribute__((packed)) with __packed and fixed the 
> whitespace for bit fields. I think those are the only actionable ones... the 
> camel case comes from names inside lz4.c, and I need the typedefs to map 
> U-Boot's types to the ones lz4.c expects.

Right.

>
>>
>> Could you return int here, and use proper error numbers below? Like
>> -EINVAL, -EPROTONOSUPPORT, -ENOSPC, etc.
>
>
> Okay, I switched it to the model where it returns an int and the size is an 
> output pointer, like the other algorithms.

Sounds good.

Regards,
Simon
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to