Bug#681760: busybox: broken on s390x due to alignment issues
Package: busybox Version: 1:1.20.0-5 Severity: critical Tags: d-i upstream patch busybox is currently broken on s390x to the point of not being usable. Depending on the configuration, some strings are replaced by empty strings. For the current version 1:1.20.0-5, this is the case of at least for the banner and the binary path, the later causing all exec applets to fail to execute. In turns this renders the system unbootable: | $ busybox sh | | | built-in shell (ash) | Enter 'help' for a list of built-in commands. | | $ switch_root | sh: switch_root: not found busybox-udeb is also affected, I haven't tried yet the impact on d-i, but at least essential applets like swapon, syslogd, realpath or uname are not working. This is due to aggressive size optimization by chaning the default strings alignement in the definitions of the strings in libbb/messages.c. Given it is not done in the corresponding declarations in include/libbb.h, the compiler is free to optimize the access to these constants with aligned access, which is what GCC does on s390x. This is why the bug appears and disappears from version to version, as the issue depends on the size of neighbouring constants and variables. The patch below, also submitted upstream and adapted to the debian package (due to changes in shell-ash-export-HOME.patch) fixes the problem. include/libbb.h: declare messages with ALIGN1 Some messages strings are defined with ALIGN1 in libbb/messages.c to make sure strings are not aligned and thus to save some bytes. The corresponding declaration in include/libbb.h should also use ALIGN1, otherwise the compiler may assume they are aligned and generate wrong code to access them. This is the case on at least s390x. Signed-off-by: Aurelien Jarno aurel...@aurel32.net --- include/libbb.h | 36 ++-- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/include/libbb.h b/include/libbb.h index 322a28c..f22e58e 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -1612,8 +1612,8 @@ unsigned get_cpu_count(void) FAST_FUNC; char *percent_decode_in_place(char *str, int strict) FAST_FUNC; -extern const char bb_uuenc_tbl_base64[]; -extern const char bb_uuenc_tbl_std[]; +extern const char bb_uuenc_tbl_base64[] ALIGN1; +extern const char bb_uuenc_tbl_std[] ALIGN1; void bb_uuencode(char *store, const void *s, int length, const char *tbl) FAST_FUNC; enum { BASE64_FLAG_UU_STOP = 0x100, @@ -1694,24 +1694,24 @@ extern const char *applet_name; * Therefore now we use #defines. */ /* BusyBox vN.N.N (timestamp or extra_version) */ -extern const char bb_banner[]; -extern const char bb_msg_memory_exhausted[]; -extern const char bb_msg_invalid_date[]; +extern const char bb_banner[] ALIGN1; +extern const char bb_msg_memory_exhausted[] ALIGN1; +extern const char bb_msg_invalid_date[] ALIGN1; #define bb_msg_read_error read error #define bb_msg_write_error write error -extern const char bb_msg_unknown[]; -extern const char bb_msg_can_not_create_raw_socket[]; -extern const char bb_msg_perm_denied_are_you_root[]; -extern const char bb_msg_you_must_be_root[]; -extern const char bb_msg_requires_arg[]; -extern const char bb_msg_invalid_arg[]; -extern const char bb_msg_standard_input[]; -extern const char bb_msg_standard_output[]; +extern const char bb_msg_unknown[] ALIGN1; +extern const char bb_msg_can_not_create_raw_socket[] ALIGN1; +extern const char bb_msg_perm_denied_are_you_root[] ALIGN1; +extern const char bb_msg_you_must_be_root[] ALIGN1; +extern const char bb_msg_requires_arg[] ALIGN1; +extern const char bb_msg_invalid_arg[] ALIGN1; +extern const char bb_msg_standard_input[] ALIGN1; +extern const char bb_msg_standard_output[] ALIGN1; /* NB: (bb_hexdigits_upcase[i] | 0x20) - lowercase hex digit */ -extern const char bb_hexdigits_upcase[]; +extern const char bb_hexdigits_upcase[] ALIGN1; -extern const char bb_path_wtmp_file[]; +extern const char bb_path_wtmp_file[] ALIGN1; /* Busybox mount uses either /proc/mounts or /etc/mtab to * get the list of currently mounted filesystems */ @@ -1725,10 +1725,10 @@ extern const char bb_path_wtmp_file[]; #define bb_path_motd_file /etc/motd #define bb_dev_null /dev/null -extern const char bb_busybox_exec_path[]; +extern const char bb_busybox_exec_path[] ALIGN1; /* util-linux manpage says /sbin:/bin:/usr/sbin:/usr/bin, * but I want to save a few bytes here */ -extern char bb_PATH_root_path[]; /* PATH=/sbin:/usr/sbin:/bin:/usr/bin */ +extern char bb_PATH_root_path[] ALIGN1; /* PATH=/sbin:/usr/sbin:/bin:/usr/bin */ #define bb_default_root_path (bb_PATH_root_path + sizeof(PATH)) #define bb_default_path (bb_PATH_root_path + sizeof(PATH=/sbin:/usr/sbin)) @@ -1758,7 +1758,7 @@ extern struct globals *const ptr_to_globals; * If you change LIBBB_DEFAULT_LOGIN_SHELL, * don't forget to change increment constant. */ #define LIBBB_DEFAULT_LOGIN_SHELL -/bin/sh -extern const char bb_default_login_shell[]; +extern const
Bug#681656: Bug 681656
Hello, I'm experiencing the same problem. I have an Intel 82567LM network card. The installer I used: wheezy-DI-b1 amd64 Binary-1 20120715-00:01 Gaston -- To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/500411c6.7040...@gmail.com
Bug#681801: Preseeding console-keymaps-at/keymap=us no longer works to select keymap
Package: console-setup-udeb Version: 1.80 We perform automated preseeded Debian installations. With Debian Squeeze we are able to use the following boot parameters to prevent Debian from prompting for country and keyboard settings: == debian-installer/locale=en_US kbd-chooser/method=us console-keymaps-at/keymap=us == However with Wheezy this no longer works, and we get prompted for keyboard map regardless (screenshot: http://s17.postimage.org/on6is922n/keymap_prompt.png ) In case a different preseed value then console-keymaps-at/keymap=us is necessary nowadays, please update the documentation ( http://d-i.alioth.debian.org/manual/en.amd64/apbs04.html#preseed-l10n ) -- Yours sincerely, Floris Bos -- To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/5004481c.6020...@je-eigen-domein.nl
di - Running own udeb in rescue-mode if append parameter ies-restore/enable=true is set
Hello, I should like to create an additional rescue-mode in debian installer. The primary function of this mode is the automatically restore of a brocken system from backup. If the kernel append parameter ies-restore/enable=true is set, the d-i should start the postinst file of the package ies-restore.udeb instead of the rescue-mode.udeb. In the d-i initrd, which files I have to modify to make the determination? I haven't found information about this problematic in debian wiki and on alioths homepage. I am sorry for my poor english. Thank you for helping Bastian attachment: b_nolte.vcf
Bug#681801: Preseeding console-keymaps-at/keymap=us no longer works to select keymap
reassign 681801 installation-guide tags 681801 + pending thanks Floris Bos / Maxnet, le Mon 16 Jul 2012 18:58:04 +0200, a écrit : In case a different preseed value then console-keymaps-at/keymap=us is necessary nowadays, please update the documentation ( http://d-i.alioth.debian.org/manual/en.amd64/apbs04.html#preseed-l10n ) Yes, it has changed, and the manual has been updated already, just not uploaded yet. Samuel -- To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20120717033313.GG5136@type
Processed: Re: Bug#681801: Preseeding console-keymaps-at/keymap=us no longer works to select keymap
Processing commands for cont...@bugs.debian.org: reassign 681801 installation-guide Bug #681801 [console-setup-udeb] Preseeding console-keymaps-at/keymap=us no longer works to select keymap Bug reassigned from package 'console-setup-udeb' to 'installation-guide'. No longer marked as found in versions console-setup/1.80. Ignoring request to alter fixed versions of bug #681801 to the same values previously set tags 681801 + pending Bug #681801 [installation-guide] Preseeding console-keymaps-at/keymap=us no longer works to select keymap Added tag(s) pending. thanks Stopping processing here. Please contact me if you need assistance. -- 681801: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=681801 Debian Bug Tracking System Contact ow...@bugs.debian.org with problems -- To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/handler.s.c.13424964024248.transcr...@bugs.debian.org
Bug#681760: busybox: broken on s390x due to alignment issues
forwarded 681760 http://lists.busybox.net/pipermail/busybox/2012-July/078155.html tags 681760 + pending thanks On 16.07.2012 12:57, Aurelien Jarno wrote: busybox is currently broken on s390x to the point of not being usable. Depending on the configuration, some strings are replaced by empty strings. For the current version 1:1.20.0-5, this is the case of at least for the banner and the binary path, the later causing all exec applets to fail to execute. In turns this renders the system unbootable: [] This is due to aggressive size optimization by chaning the default strings alignement in the definitions of the strings in libbb/messages.c. Given it is not done in the corresponding declarations in include/libbb.h, the compiler is free to optimize the access to these constants with aligned access, which is what GCC does on s390x. This is why the bug appears and disappears from version to version, as the issue depends on the size of neighbouring constants and variables. The patch below, also submitted upstream and adapted to the debian package (due to changes in shell-ash-export-HOME.patch) fixes the problem. Thank you for the excellent bugreport. If you ask me, I'd say the whole thing - killing alignment - is not worth the effort here, it saves a few bytes but may cost much more, like is demonstrated by this very issue, so I'd just remove the ALIGN1 marker. Also, I'd say it is a bug in GCC, since it produces no warning when declaration and definition of the same variable are different and may produce different results. As for the patch, I'd use the same patch as sent to upstream, and adapt the ash-export-HOME instead, since it is already debian-specific. But I'm not sure what's better for the release team. I'll ask around. Thanks you! /mjt -- To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/5004f49d.9050...@msgid.tls.msk.ru
Processed: Re: Bug#681760: busybox: broken on s390x due to alignment issues
Processing commands for cont...@bugs.debian.org: forwarded 681760 http://lists.busybox.net/pipermail/busybox/2012-July/078155.html Bug #681760 [busybox] busybox: broken on s390x due to alignment issues Set Bug forwarded-to-address to 'http://lists.busybox.net/pipermail/busybox/2012-July/078155.html'. tags 681760 + pending Bug #681760 [busybox] busybox: broken on s390x due to alignment issues Added tag(s) pending. thanks Stopping processing here. Please contact me if you need assistance. -- 681760: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=681760 Debian Bug Tracking System Contact ow...@bugs.debian.org with problems -- To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/handler.s.c.134250239528414.transcr...@bugs.debian.org