diff mbox

[U-Boot] binman: 'module' object has no attribute 'FinaliseOutputDir'

Message ID CAOi56cW80UDK4gORg0Eu3cmYgnuJtrYEkcPd5tHVtoVbybjz5w@mail.gmail.com
State Not Applicable
Delegated to: Simon Glass
Headers show

Commit Message

Kevin Hilman June 2, 2017, 8:44 p.m. UTC
On Fri, Jun 2, 2017 at 11:00 AM, Simon Glass <sjg@chromium.org> wrote:
> Hi Kevin,
>
> On 1 June 2017 at 17:08, Kevin Hilman <khilman@baylibre.com> wrote:
>>
>> On Thu, Jun 1, 2017 at 8:23 AM, Simon Glass <sjg@chromium.org> wrote:
>> > Hi Kevin,
>> >
>> > On 1 June 2017 at 07:55, Kevin Hilman <khilman@baylibre.com> wrote:
>> >> On Wed, May 31, 2017 at 12:19 PM, Simon Glass <sjg@chromium.org> wrote:
>> >>> Hi Kevin,
>> >>>
>> >>> On 31 May 2017 at 12:13, Kevin Hilman <khilman@baylibre.com> wrote:
>> >>>> While trying to build v2017.05 for sun5i-r8-chip (CHIP_defconfig), I get
>> >>>> the following build error.  I'm not familiar with binman, so not sure
>> >>>> what I should be looking for.
>> >>>>
>> >>>> $ CROSS_COMPILE=arm-linux-gnueabihf- make
>> >>>>
>> >>>> [...]
>> >>>>
>> >>>>  LD      spl/drivers/serial/built-in.o
>> >>>>  LD      spl/drivers/built-in.o
>> >>>>  LD      spl/common/built-in.o
>> >>>>  LD      spl/lib/built-in.o
>> >>>>  LD      spl/u-boot-spl
>> >>>>  OBJCOPY spl/u-boot-spl-nodtb.bin
>> >>>>  COPY    spl/u-boot-spl.bin
>> >>>>  MKSUNXI spl/sunxi-spl.bin
>> >>>>  BINMAN  u-boot-sunxi-with-spl.bin
>> >>>>  binman: 'module' object has no attribute 'FinaliseOutputDir'
>> >>>>  Makefile:1107: recipe for target 'u-boot-sunxi-with-spl.bin' failed
>> >>>>  make: *** [u-boot-sunxi-with-spl.bin] Error 1
>> >>>>
>> >>>>
>> >>>> If it matters, compiler is: gcc version 5.3.1 20160412 (Linaro GCC 5.3-2016.05)
>> >>>
>> >>> Do you know what version of python you are using? I cannot imagine
>> >>> what is happening here.
>> >>
>> >> $ python
>> >> Python 2.7.12 (default, Nov 19 2016, 06:48:10)
>> >> [GCC 5.4.0 20160609] on linux2
>> >> Type "help", "copyright", "credits" or "license" for more information.
>> >>>>>
>> >>
>> >> and fwiw, this is on Ubuntu 16.04 LTS.
>> >
>> > That's what I am using too. This is really mystifying. Are you able to
>> > debug the python code?
>>
>> If you give me some pointers/suggestions, I'd be glad to, but I don't
>> currently have much time to go wandering too deep into the uboot
>> weeds.
>
> My guess is that you have a tools.py file somewhere in your Python
> site_packages. You should be able to test this with:
>
> python
>> import tools
>
> Perhaps 'dpkg -S tools.py' will tell you what package installed it.

$ python
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os.path
>>> import tools
>>> print os.path.abspath(tools.__file__)
/usr/local/lib/python2.7/dist-packages/tools/__init__.pyc
>>>

So since this is in /usr/local, dpkg -S didn't help, so it was
something installed by pip.  Turns out that it was the jira-python
package, installed by pip that had installed this tools dir.

> If you don't get an error then it suggests you already have this
> package. That in turn would suggest that the fix is that the path
> should be prepended instead of appended at the top of binman.py.

"pip uninstall jira-python" also did the trick, but prepending worked
too.  I suppose having a name slightly less generic than "tools" would
also work.

Anyways, I got it building now, so I'll let you decide which is the
"right way" to fix.

Thanks,

Kevin

[1]
$ git diff tools/binman/
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Comments

Simon Glass June 21, 2017, 3:29 a.m. UTC | #1
Hi Kevin,

On 2 June 2017 at 14:44, Kevin Hilman <khilman@baylibre.com> wrote:
> On Fri, Jun 2, 2017 at 11:00 AM, Simon Glass <sjg@chromium.org> wrote:
>> Hi Kevin,
>>
>> On 1 June 2017 at 17:08, Kevin Hilman <khilman@baylibre.com> wrote:
>>>
>>> On Thu, Jun 1, 2017 at 8:23 AM, Simon Glass <sjg@chromium.org> wrote:
>>> > Hi Kevin,
>>> >
>>> > On 1 June 2017 at 07:55, Kevin Hilman <khilman@baylibre.com> wrote:
>>> >> On Wed, May 31, 2017 at 12:19 PM, Simon Glass <sjg@chromium.org> wrote:
>>> >>> Hi Kevin,
>>> >>>
>>> >>> On 31 May 2017 at 12:13, Kevin Hilman <khilman@baylibre.com> wrote:
>>> >>>> While trying to build v2017.05 for sun5i-r8-chip (CHIP_defconfig), I get
>>> >>>> the following build error.  I'm not familiar with binman, so not sure
>>> >>>> what I should be looking for.
>>> >>>>
>>> >>>> $ CROSS_COMPILE=arm-linux-gnueabihf- make
>>> >>>>
>>> >>>> [...]
>>> >>>>
>>> >>>>  LD      spl/drivers/serial/built-in.o
>>> >>>>  LD      spl/drivers/built-in.o
>>> >>>>  LD      spl/common/built-in.o
>>> >>>>  LD      spl/lib/built-in.o
>>> >>>>  LD      spl/u-boot-spl
>>> >>>>  OBJCOPY spl/u-boot-spl-nodtb.bin
>>> >>>>  COPY    spl/u-boot-spl.bin
>>> >>>>  MKSUNXI spl/sunxi-spl.bin
>>> >>>>  BINMAN  u-boot-sunxi-with-spl.bin
>>> >>>>  binman: 'module' object has no attribute 'FinaliseOutputDir'
>>> >>>>  Makefile:1107: recipe for target 'u-boot-sunxi-with-spl.bin' failed
>>> >>>>  make: *** [u-boot-sunxi-with-spl.bin] Error 1
>>> >>>>
>>> >>>>
>>> >>>> If it matters, compiler is: gcc version 5.3.1 20160412 (Linaro GCC 5.3-2016.05)
>>> >>>
>>> >>> Do you know what version of python you are using? I cannot imagine
>>> >>> what is happening here.
>>> >>
>>> >> $ python
>>> >> Python 2.7.12 (default, Nov 19 2016, 06:48:10)
>>> >> [GCC 5.4.0 20160609] on linux2
>>> >> Type "help", "copyright", "credits" or "license" for more information.
>>> >>>>>
>>> >>
>>> >> and fwiw, this is on Ubuntu 16.04 LTS.
>>> >
>>> > That's what I am using too. This is really mystifying. Are you able to
>>> > debug the python code?
>>>
>>> If you give me some pointers/suggestions, I'd be glad to, but I don't
>>> currently have much time to go wandering too deep into the uboot
>>> weeds.
>>
>> My guess is that you have a tools.py file somewhere in your Python
>> site_packages. You should be able to test this with:
>>
>> python
>>> import tools
>>
>> Perhaps 'dpkg -S tools.py' will tell you what package installed it.
>
> $ python
> Python 2.7.12 (default, Nov 19 2016, 06:48:10)
> [GCC 5.4.0 20160609] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
>>>> import os.path
>>>> import tools
>>>> print os.path.abspath(tools.__file__)
> /usr/local/lib/python2.7/dist-packages/tools/__init__.pyc
>>>>
>
> So since this is in /usr/local, dpkg -S didn't help, so it was
> something installed by pip.  Turns out that it was the jira-python
> package, installed by pip that had installed this tools dir.
>
>> If you don't get an error then it suggests you already have this
>> package. That in turn would suggest that the fix is that the path
>> should be prepended instead of appended at the top of binman.py.
>
> "pip uninstall jira-python" also did the trick, but prepending worked
> too.  I suppose having a name slightly less generic than "tools" would
> also work.
>
> Anyways, I got it building now, so I'll let you decide which is the
> "right way" to fix.

OK thanks for helping with this. I sent a patch.

http://patchwork.ozlabs.org/patch/778613/

Regards,
Simon
[...]
diff mbox

Patch

diff --git a/tools/binman/binman.py b/tools/binman/binman.py
index 857d698b4c24..535bcece274f 100755
--- a/tools/binman/binman.py
+++ b/tools/binman/binman.py
@@ -17,7 +17,7 @@  import unittest

 # Bring in the patman and dtoc libraries
 our_path = os.path.dirname(os.path.realpath(__file__))
-sys.path.append(os.path.join(our_path, '../patman'))
+sys.path.insert(1, os.path.join(our_path, '../patman'))
 sys.path.append(os.path.join(our_path, '../dtoc'))
 sys.path.append(os.path.join(our_path, '../'))
_______________________________________________