问题
I've been using buildroot in order to build a toolchain using uclibc. Now, buildroot downloads all the packages, extract them and build them all..
I want to change the toolchain's uclibc source and then recompile the toolchain with the new source and i just can't understand how it can be done in the pretty way..
After it finishes building, all of the extracted sources are found in the "<buildroot-src>/output/build". But changing them won't give me a thing because buildroot only uses this directory as an intermediate during build time.
So my thought was, maybe changing the .mk file in the uclibc package and make it use my modified source instead of downloading and extracting it (not yet sure if it can be done there) but that seems a bit ugly solution..
So my question is this: Is there any better way of telling buildroot to build a package using existing source?
回答1:
Please read the Buildroot manual about the <pkg>_OVERRIDE_SRCDIR
functionality. It does exactly what you are looking for.
回答2:
Minimal git submodule + *_OVERRIDE_SRCDIR
example
Docs explain it, but here is a faster to parse version.
Directory structure:
buildroot/
: git submodule with buildroot2017.02
linux/
: git submodule with Linux kernel pointing to your fork at https://github.com/you/linuxbuildroot_override
: contains:LINUX_OVERRIDE_SRCDIR = ../linux
Build and run:
cd buildroot
make qemu_x86_64_defconfig
echo 'BR2_PACKAGE_OVERRIDE_FILE=../buildroot_override' >> .config
make
qemu-system-x86_64 -M pc -kernel output/images/bzImage -drive file=output/images/rootfs.ext2,if=virtio,format=raw -append root=/dev/vda -net nic,model=virtio -net user
Here is an example project using it.
来源:https://stackoverflow.com/questions/40333695/how-to-modify-the-source-of-buildroot-packages-for-package-development