Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] new package not built, AR prefix not passed to make
       [not found] <1080754998.70934.1396536817436.JavaMail.root@mail>
@ 2014-04-03 15:32 ` Émeric Vigier
  2014-04-03 15:43   ` Émeric Vigier
                     ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Émeric Vigier @ 2014-04-03 15:32 UTC (permalink / raw)
  To: buildroot

Hi Builders,

I am facing two basic issues after adding a new library to buildroot:

1. "make" does not build it
---------------------------
What I did can be summed up in these files:

  $ grep company package/Config.in 
  source "package/company/Config.in"

  $ cat package/company/libfpga/Config.in 
  config BR2_PACKAGE_COMPANY_LIBFPGA
	bool "libfpga"
	select BR2_TOOLCHAIN_USES_GLIBC
	help
	  library providing access to FPGA functions

  $ cat package/company/company.mk 
  include $(sort $(wildcard package/company/*/*.mk))

  $ cat package/company/libfpga/libfpga.mk
  ################################################################################
  #
  # libfpga
  #
  ################################################################################

  LIBFPGA_VERSION = 1.0
  LIBFPGA_SOURCE = libfpga-$(LIBFPGA_VERSION).tar.gz
  LIBFPGA_SITE = $(TOPDIR)/../libfpga/
  LIBFPGA_SITE_METHOD = local

  LIBFPGA_INSTALL_STAGING = YES
  # defaults to YES
  LIBFPGA_INSTALL_TARGET = YES
  LIBFPGA_DEPENDENCIES = glibc
  #LIBFPGA_CONFIG_SCRIPTS = 

  define LIBFPGA_BUILD_CMDS
      $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D) all
  endef
  $(eval $(generic-package))

  $ grep COMPANY .config
  BR2_PACKAGE_COMPANY=y
  BR2_PACKAGE_COMPANY_LIBFPGA=y

  $ make
  (no luck)

Does anyone see what I am missing here?


2. AR cross-prefix is not passed by buildroot to make
-----------------------------------------------------
I can build my package manually though:

  $ make libfpga
>>> libfpga 1.0 Syncing from source dir /home/evigier/buildroot-2013.11/../libfpga/
rsync -au --exclude .svn --exclude .git --exclude .hg --exclude .bzr --exclude CVS /home/evigier/buildroot-2013.11/../libfpga// /home/evigier/buildroot-2013.11/output/build/libfpga-1.0
>>> libfpga 1.0 Configuring
>>> libfpga 1.0 Building
/usr/bin/make -j5 CC="/home/evigier/buildroot-2013.11/output/host/usr/bin/powerpc-buildroot-linux-gnu-gcc" LD="/home/evigier/buildroot-2013.11/output/host/usr/bin/powerpc-buildroot-linux-gnu-ld" -C /home/evigier/buildroot-2013.11/output/build/libfpga-1.0 all
make[1]: Entering directory `/home/evigier/buildroot-2013.11/output/build/libfpga-1.0'
ar rcs libfpga.a fpga.o
/home/evigier/buildroot-2013.11/output/host/usr/bin/powerpc-buildroot-linux-gnu-gcc -shared -o libfpga.so fpga.o
make[1]: Leaving directory `/home/evigier/buildroot-2013.11/output/build/libfpga-1.0'

Why is AR prefix not passed to make here? Is this related to the generic-package?

Thanks,
Emeric

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] new package not built, AR prefix not passed to make
  2014-04-03 15:32 ` [Buildroot] new package not built, AR prefix not passed to make Émeric Vigier
@ 2014-04-03 15:43   ` Émeric Vigier
  2014-04-03 15:50     ` Gustavo Zacarias
  2014-04-03 17:21   ` Lionel Orry
  2014-04-04  5:30   ` Arnout Vandecappelle
  2 siblings, 1 reply; 9+ messages in thread
From: Émeric Vigier @ 2014-04-03 15:43 UTC (permalink / raw)
  To: buildroot

> Why is AR prefix not passed to make here? Is this related to the
> generic-package?

I believe I found part of my answer on gnu.org libc manual:
  You may need to set AR to cross-compiling versions of ar if the native tools
  are not configured to work with object files for the target you configured for.

$ ar --help
[...]
ar: supported targets: elf64-x86-64 elf32-i386 elf32-x86-64 a.out-i386-linux pei-i386 pei-x86-64 elf64-l1om elf64-k1om elf64-little elf64-big elf32-little elf32-big plugin srec symbolsrec verilog tekhex binary ihex

So I guess buildroot makes such a sanity check, right?

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] new package not built, AR prefix not passed to make
  2014-04-03 15:43   ` Émeric Vigier
@ 2014-04-03 15:50     ` Gustavo Zacarias
  2014-04-03 15:53       ` Émeric Vigier
  0 siblings, 1 reply; 9+ messages in thread
From: Gustavo Zacarias @ 2014-04-03 15:50 UTC (permalink / raw)
  To: buildroot

On 04/03/2014 12:43 PM, ?meric Vigier wrote:

>> Why is AR prefix not passed to make here? Is this related to the
>> generic-package?
> 
> I believe I found part of my answer on gnu.org libc manual:
>   You may need to set AR to cross-compiling versions of ar if the native tools
>   are not configured to work with object files for the target you configured for.
> 
> $ ar --help
> [...]
> ar: supported targets: elf64-x86-64 elf32-i386 elf32-x86-64 a.out-i386-linux pei-i386 pei-x86-64 elf64-l1om elf64-k1om elf64-little elf64-big elf32-little elf32-big plugin srec symbolsrec verilog tekhex binary ihex
> 
> So I guess buildroot makes such a sanity check, right?

You just need to use $(TARGET_AR) the same way you're using $(TARGET_CC)
and others.
Snip:

define LIBFPGA_BUILD_CMDS
        $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" \
        AR="$(TARGET_AR)" -C $(@D) all
endef

Or better still what usually works...
        $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)

Regards.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] new package not built, AR prefix not passed to make
  2014-04-03 15:50     ` Gustavo Zacarias
@ 2014-04-03 15:53       ` Émeric Vigier
  0 siblings, 0 replies; 9+ messages in thread
From: Émeric Vigier @ 2014-04-03 15:53 UTC (permalink / raw)
  To: buildroot


----- Mail original -----
> On 04/03/2014 12:43 PM, ?meric Vigier wrote:
> 
> >> Why is AR prefix not passed to make here? Is this related to the
> >> generic-package?
> > 
> > I believe I found part of my answer on gnu.org libc manual:
> >   You may need to set AR to cross-compiling versions of ar if the
> >   native tools
> >   are not configured to work with object files for the target you
> >   configured for.
> > 
> > $ ar --help
> > [...]
> > ar: supported targets: elf64-x86-64 elf32-i386 elf32-x86-64
> > a.out-i386-linux pei-i386 pei-x86-64 elf64-l1om elf64-k1om
> > elf64-little elf64-big elf32-little elf32-big plugin srec
> > symbolsrec verilog tekhex binary ihex
> > 
> > So I guess buildroot makes such a sanity check, right?
> 
> You just need to use $(TARGET_AR) the same way you're using
> $(TARGET_CC)
> and others.
> Snip:
> 
> define LIBFPGA_BUILD_CMDS
>         $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" \
>         AR="$(TARGET_AR)" -C $(@D) all
> endef

Stupid me, thanks!

> 
> Or better still what usually works...
>         $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)
> 
> Regards.
> 
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] new package not built, AR prefix not passed to make
  2014-04-03 15:32 ` [Buildroot] new package not built, AR prefix not passed to make Émeric Vigier
  2014-04-03 15:43   ` Émeric Vigier
@ 2014-04-03 17:21   ` Lionel Orry
  2014-04-03 18:11     ` Émeric Vigier
  2014-04-04  5:30   ` Arnout Vandecappelle
  2 siblings, 1 reply; 9+ messages in thread
From: Lionel Orry @ 2014-04-03 17:21 UTC (permalink / raw)
  To: buildroot

Hi Emeric,

On Thu, Apr 3, 2014 at 5:32 PM, ?meric Vigier
<emeric.vigier@savoirfairelinux.com> wrote:
> Hi Builders,
>
> I am facing two basic issues after adding a new library to buildroot:
>
> 1. "make" does not build it
> ---------------------------
> What I did can be summed up in these files:
>
>   $ grep company package/Config.in
>   source "package/company/Config.in"
>
>   $ cat package/company/libfpga/Config.in
>   config BR2_PACKAGE_COMPANY_LIBFPGA
>         bool "libfpga"
>         select BR2_TOOLCHAIN_USES_GLIBC
>         help
>           library providing access to FPGA functions
>

Don't you also need a package/company/Config.in then, with the
following content :

menu "Company-specific packages"
source "package/company/libfpga/Config.in"
endmenu

?

>   $ cat package/company/company.mk
>   include $(sort $(wildcard package/company/*/*.mk))
>
>   $ cat package/company/libfpga/libfpga.mk
>   ################################################################################
>   #
>   # libfpga
>   #
>   ################################################################################
>
>   LIBFPGA_VERSION = 1.0
>   LIBFPGA_SOURCE = libfpga-$(LIBFPGA_VERSION).tar.gz
>   LIBFPGA_SITE = $(TOPDIR)/../libfpga/
>   LIBFPGA_SITE_METHOD = local
>
>   LIBFPGA_INSTALL_STAGING = YES
>   # defaults to YES
>   LIBFPGA_INSTALL_TARGET = YES
>   LIBFPGA_DEPENDENCIES = glibc
>   #LIBFPGA_CONFIG_SCRIPTS =
>
>   define LIBFPGA_BUILD_CMDS
>       $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D) all
>   endef
>   $(eval $(generic-package))
>
>   $ grep COMPANY .config
>   BR2_PACKAGE_COMPANY=y
>   BR2_PACKAGE_COMPANY_LIBFPGA=y
>
>   $ make
>   (no luck)
>
> Does anyone see what I am missing here?
>
>
> 2. AR cross-prefix is not passed by buildroot to make
> -----------------------------------------------------
> I can build my package manually though:
>
>   $ make libfpga
>>>> libfpga 1.0 Syncing from source dir /home/evigier/buildroot-2013.11/../libfpga/
> rsync -au --exclude .svn --exclude .git --exclude .hg --exclude .bzr --exclude CVS /home/evigier/buildroot-2013.11/../libfpga// /home/evigier/buildroot-2013.11/output/build/libfpga-1.0
>>>> libfpga 1.0 Configuring
>>>> libfpga 1.0 Building
> /usr/bin/make -j5 CC="/home/evigier/buildroot-2013.11/output/host/usr/bin/powerpc-buildroot-linux-gnu-gcc" LD="/home/evigier/buildroot-2013.11/output/host/usr/bin/powerpc-buildroot-linux-gnu-ld" -C /home/evigier/buildroot-2013.11/output/build/libfpga-1.0 all
> make[1]: Entering directory `/home/evigier/buildroot-2013.11/output/build/libfpga-1.0'
> ar rcs libfpga.a fpga.o
> /home/evigier/buildroot-2013.11/output/host/usr/bin/powerpc-buildroot-linux-gnu-gcc -shared -o libfpga.so fpga.o
> make[1]: Leaving directory `/home/evigier/buildroot-2013.11/output/build/libfpga-1.0'
>
> Why is AR prefix not passed to make here? Is this related to the generic-package?
>
> Thanks,
> Emeric
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] new package not built, AR prefix not passed to make
  2014-04-03 17:21   ` Lionel Orry
@ 2014-04-03 18:11     ` Émeric Vigier
  2014-04-04  5:46       ` Lionel Orry
  0 siblings, 1 reply; 9+ messages in thread
From: Émeric Vigier @ 2014-04-03 18:11 UTC (permalink / raw)
  To: buildroot

Hi Lionel,

----- Mail original -----
> Hi Emeric,
> 
> On Thu, Apr 3, 2014 at 5:32 PM, ?meric Vigier
> <emeric.vigier@savoirfairelinux.com> wrote:
> > Hi Builders,
> >
> > I am facing two basic issues after adding a new library to
> > buildroot:
> >
> > 1. "make" does not build it
> > ---------------------------
> > What I did can be summed up in these files:
> >
> >   $ grep company package/Config.in
> >   source "package/company/Config.in"
> >
> >   $ cat package/company/libfpga/Config.in
> >   config BR2_PACKAGE_COMPANY_LIBFPGA
> >         bool "libfpga"
> >         select BR2_TOOLCHAIN_USES_GLIBC
> >         help
> >           library providing access to FPGA functions
> >
> 
> Don't you also need a package/company/Config.in then, with the
> following content :
> 
> menu "Company-specific packages"
> source "package/company/libfpga/Config.in"
> endmenu
> 
> ?

I forgot to dump it in my email, but I wrote it as follows:

  $ cat package/company/Config.in 
  menuconfig BR2_PACKAGE_COMPANY
	bool "Company Library and embedded tools"
	help
	  Company Library and embedded tools

  if BR2_PACKAGE_COMPANY
  source "package/company/libfpga/Config.in"
  endif # BR2_PACKAGE_COMPANY

I also tried with your syntax, no luck.
My Config.in are sane I believe. I can see all the required options in menuconfig
And they end up in .config correctly.

Regards,
Emeric

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] new package not built, AR prefix not passed to make
  2014-04-03 15:32 ` [Buildroot] new package not built, AR prefix not passed to make Émeric Vigier
  2014-04-03 15:43   ` Émeric Vigier
  2014-04-03 17:21   ` Lionel Orry
@ 2014-04-04  5:30   ` Arnout Vandecappelle
  2014-04-04 19:36     ` Émeric Vigier
  2 siblings, 1 reply; 9+ messages in thread
From: Arnout Vandecappelle @ 2014-04-04  5:30 UTC (permalink / raw)
  To: buildroot

On 03/04/14 17:32, ?meric Vigier wrote:
[snip]
>   $ cat package/company/libfpga/Config.in 
>   config BR2_PACKAGE_COMPANY_LIBFPGA

 Either the symbol should be BR2_PACKAGE_LIBFPGA, or the directory should
be package/company/company-libfpga (and the .mk file
package/company/company-libfpga/company-libfpga.mk).

 Regards,
 Arnout

[snip]
-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] new package not built, AR prefix not passed to make
  2014-04-03 18:11     ` Émeric Vigier
@ 2014-04-04  5:46       ` Lionel Orry
  0 siblings, 0 replies; 9+ messages in thread
From: Lionel Orry @ 2014-04-04  5:46 UTC (permalink / raw)
  To: buildroot

On Thu, Apr 3, 2014 at 8:11 PM, ?meric Vigier
<emeric.vigier@savoirfairelinux.com> wrote:
> Hi Lionel,
>
> ----- Mail original -----
>> Hi Emeric,
>>
>> On Thu, Apr 3, 2014 at 5:32 PM, ?meric Vigier
>> <emeric.vigier@savoirfairelinux.com> wrote:
>> > Hi Builders,
>> >
>> > I am facing two basic issues after adding a new library to
>> > buildroot:
>> >
>> > 1. "make" does not build it
>> > ---------------------------
>> > What I did can be summed up in these files:
>> >
>> >   $ grep company package/Config.in
>> >   source "package/company/Config.in"
>> >
>> >   $ cat package/company/libfpga/Config.in
>> >   config BR2_PACKAGE_COMPANY_LIBFPGA
>> >         bool "libfpga"
>> >         select BR2_TOOLCHAIN_USES_GLIBC
>> >         help
>> >           library providing access to FPGA functions
>> >
>>
>> Don't you also need a package/company/Config.in then, with the
>> following content :
>>
>> menu "Company-specific packages"
>> source "package/company/libfpga/Config.in"
>> endmenu
>>
>> ?
>
> I forgot to dump it in my email, but I wrote it as follows:
>
>   $ cat package/company/Config.in
>   menuconfig BR2_PACKAGE_COMPANY
>         bool "Company Library and embedded tools"
>         help
>           Company Library and embedded tools
>
>   if BR2_PACKAGE_COMPANY
>   source "package/company/libfpga/Config.in"
>   endif # BR2_PACKAGE_COMPANY
>
> I also tried with your syntax, no luck.
> My Config.in are sane I believe. I can see all the required options in menuconfig
> And they end up in .config correctly.
>
> Regards,
> Emeric

You may also want to check if the libfpga buld folder already exists,
and stamps in it, in doubt you can try

rm -r output/build/libfpga-1.0

Cheers

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] new package not built, AR prefix not passed to make
  2014-04-04  5:30   ` Arnout Vandecappelle
@ 2014-04-04 19:36     ` Émeric Vigier
  0 siblings, 0 replies; 9+ messages in thread
From: Émeric Vigier @ 2014-04-04 19:36 UTC (permalink / raw)
  To: buildroot

----- Mail original -----
> De: "Arnout Vandecappelle" <arnout@mind.be>
> ?: "?meric Vigier" <emeric.vigier@savoirfairelinux.com>, buildroot at busybox.net
> Envoy?: Vendredi 4 Avril 2014 01:30:09
> Objet: Re: [Buildroot] new package not built, AR prefix not passed to make
> 
> On 03/04/14 17:32, ?meric Vigier wrote:
> [snip]
> >   $ cat package/company/libfpga/Config.in
> >   config BR2_PACKAGE_COMPANY_LIBFPGA
> 
>  Either the symbol should be BR2_PACKAGE_LIBFPGA, or the directory
>  should
> be package/company/company-libfpga (and the .mk file
> package/company/company-libfpga/company-libfpga.mk).

This is it, thanks!

> 
>  Regards,
>  Arnout

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2014-04-04 19:36 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1080754998.70934.1396536817436.JavaMail.root@mail>
2014-04-03 15:32 ` [Buildroot] new package not built, AR prefix not passed to make Émeric Vigier
2014-04-03 15:43   ` Émeric Vigier
2014-04-03 15:50     ` Gustavo Zacarias
2014-04-03 15:53       ` Émeric Vigier
2014-04-03 17:21   ` Lionel Orry
2014-04-03 18:11     ` Émeric Vigier
2014-04-04  5:46       ` Lionel Orry
2014-04-04  5:30   ` Arnout Vandecappelle
2014-04-04 19:36     ` Émeric Vigier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox