* [Buildroot] Add ability to force a static BB build
@ 2009-11-19 11:51 Michael S. Zick
2009-11-19 13:10 ` Michael S. Zick
0 siblings, 1 reply; 2+ messages in thread
From: Michael S. Zick @ 2009-11-19 11:51 UTC (permalink / raw)
To: buildroot
This one I find to be useful for people (like myself)
that need a static linked busybox before setting up
a dynamically linked system.
A1: Yes, this feature could be selected in the busybox config file;
but exposing the feature in BR allows the use of "canned" BB config
files without creating a custom one with only "static" changed.
"Signed-off-by" == "works for me"
Signed-off-by: Michael S. Zick <minimod@morethan.org>
diff --git a/package/busybox/Config.in b/package/busybox/Config.in
index 7438a8d..90cec45 100644
--- a/package/busybox/Config.in
+++ b/package/busybox/Config.in
@@ -56,6 +56,20 @@ config BR2_PACKAGE_BUSYBOX_FULLINSTALL
If you wish to just install /bin/busybox, then answer N.
+config BR2_PACKAGE_BUSYBOX_MKSTATIC
+ bool "Build a staticly linked BusyBox"
+ depends on BR2_PACKAGE_BUSYBOX
+ default n
+ help
+ This will produce a staticly linked BusyBox.
+
+ Over-rides the selection made in the BusyBox config file.
+
+ Generates a larger BusyBox that can be run independently
+ of the rest of the system being built.
+ Useful if you need to run BusyBox before setting up for
+ a dynamically linked system.
+
config BR2_PACKAGE_BUSYBOX_CONFIG
string "BusyBox configuration file to use?"
depends on BR2_PACKAGE_BUSYBOX
diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk
index eb79134..187a06a 100644
--- a/package/busybox/busybox.mk
+++ b/package/busybox/busybox.mk
@@ -77,6 +77,11 @@ ifeq ($(BR2_INET_RPC),y)
else
$(SED) "s/^.*CONFIG_FEATURE_MOUNT_NFS.*/CONFIG_FEATURE_MOUNT_NFS=n/;" $(BUSYBOX_DIR)/.config
endif
+ifeq ($(BR2_PACKAGE_BUSYBOX_MKSTATIC),y)
+ # force static build on
+ $(SED) "s/^.*CONFIG_STATIC.*/CONFIG_STATIC=y/" $(BUSYBOX_DIR)/.config
+ $(SED) "s/^.*CONFIG_PIE.*/CONFIG_PIE=n/" $(BUSYBOX_DIR)/.config
+endif
ifeq ($(BR2_PACKAGE_BUSYBOX_SKELETON),y)
# force mdev on
$(SED) "s/^.*CONFIG_MDEV.*/CONFIG_MDEV=y/" $(BUSYBOX_DIR)/.config
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [Buildroot] Add ability to force a static BB build
2009-11-19 11:51 [Buildroot] Add ability to force a static BB build Michael S. Zick
@ 2009-11-19 13:10 ` Michael S. Zick
0 siblings, 0 replies; 2+ messages in thread
From: Michael S. Zick @ 2009-11-19 13:10 UTC (permalink / raw)
To: buildroot
Ah, but getting it to build. . .
Add: "-static -static-libgcc" to the BusyBox menuconfig "extra cflags":
buildroot$ file output/target/bin/busybox
output/target/bin/busybox: ELF 32-bit LSB executable, MIPS, MIPS32 rel2 version 1 (SYSV), statically linked, with unknown capability 0xf41 = 0x756e6700, stripped
Now to figure out where in the auto-magic build system to fix "build static"
Needed:
CFLAGS+="-static -static-libgcc"
LDFLAGS+="-static"
And clean up that required "-enable-shared -enable-static" library building option.
That is the correct option pair, the other variations are not required.
Mike
On Thu November 19 2009, Michael S. Zick wrote:
> This one I find to be useful for people (like myself)
> that need a static linked busybox before setting up
> a dynamically linked system.
>
> A1: Yes, this feature could be selected in the busybox config file;
> but exposing the feature in BR allows the use of "canned" BB config
> files without creating a custom one with only "static" changed.
>
> "Signed-off-by" == "works for me"
>
> Signed-off-by: Michael S. Zick <minimod@morethan.org>
>
> diff --git a/package/busybox/Config.in b/package/busybox/Config.in
> index 7438a8d..90cec45 100644
> --- a/package/busybox/Config.in
> +++ b/package/busybox/Config.in
> @@ -56,6 +56,20 @@ config BR2_PACKAGE_BUSYBOX_FULLINSTALL
>
> If you wish to just install /bin/busybox, then answer N.
>
> +config BR2_PACKAGE_BUSYBOX_MKSTATIC
> + bool "Build a staticly linked BusyBox"
> + depends on BR2_PACKAGE_BUSYBOX
> + default n
> + help
> + This will produce a staticly linked BusyBox.
> +
> + Over-rides the selection made in the BusyBox config file.
> +
> + Generates a larger BusyBox that can be run independently
> + of the rest of the system being built.
> + Useful if you need to run BusyBox before setting up for
> + a dynamically linked system.
> +
> config BR2_PACKAGE_BUSYBOX_CONFIG
> string "BusyBox configuration file to use?"
> depends on BR2_PACKAGE_BUSYBOX
> diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk
> index eb79134..187a06a 100644
> --- a/package/busybox/busybox.mk
> +++ b/package/busybox/busybox.mk
> @@ -77,6 +77,11 @@ ifeq ($(BR2_INET_RPC),y)
> else
> $(SED) "s/^.*CONFIG_FEATURE_MOUNT_NFS.*/CONFIG_FEATURE_MOUNT_NFS=n/;" $(BUSYBOX_DIR)/.config
> endif
> +ifeq ($(BR2_PACKAGE_BUSYBOX_MKSTATIC),y)
> + # force static build on
> + $(SED) "s/^.*CONFIG_STATIC.*/CONFIG_STATIC=y/" $(BUSYBOX_DIR)/.config
> + $(SED) "s/^.*CONFIG_PIE.*/CONFIG_PIE=n/" $(BUSYBOX_DIR)/.config
> +endif
> ifeq ($(BR2_PACKAGE_BUSYBOX_SKELETON),y)
> # force mdev on
> $(SED) "s/^.*CONFIG_MDEV.*/CONFIG_MDEV=y/" $(BUSYBOX_DIR)/.config
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
>
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2009-11-19 13:10 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-19 11:51 [Buildroot] Add ability to force a static BB build Michael S. Zick
2009-11-19 13:10 ` Michael S. Zick
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox