------- Comment #4 from rep dot nop at aon dot at 2005-10-19 21:13 ------- If the order is changed, the resulting binary is mostly miscompiled.
Executing the resulting binary should give a descriptive help text, but when miscompiled segfaults instead of returning gracefully 0 or 1. (In reply to comment #0) > With > GNU C version 4.1.0 20051019 (experimental) (i686-linux-gnu) > compiled by GNU C version 4.0.1 (Debian 4.0.1-2) > > I do > /opt/gcc-4.1/bin/../lib/gcc/i686-linux-gnu/4.1.0/cc1 -fpreprocessed applets.i > busybox.i ar.i bunzip2.i cpio.i dpkg.i dpkg_deb.i gunzip.i gzip.i rpm2cpio.i > rpm.i tar.i uncompress.i unzip.i basename.i cal.i cat.i chgrp.i chmod.i > chown.i > chroot.i cmp.i comm.i cp.i cut.i date.i dd.i df.i dirname.i dos2unix.i du.i > echo.i env.i expr.i false.i fold.i head.i hostid.i id.i install.i length.i > ln.i > logname.i ls.i md5_sha1_sum.i mkdir.i mkfifo.i mknod.i mv.i nice.i nohup.i > od.i > printenv.i printf.i pwd.i realpath.i rm.i rmdir.i seq.i md5_sha1_sum.i sleep.i > sort.i stat.i stty.i sum.i sync.i tail.i tee.i test.i touch.i tr.i true.i > tty.i > uname.i uniq.i usleep.i uudecode.i uuencode.i watch.i wc.i who.i whoami.i > yes.i > chvt.i clear.i deallocvt.i dumpkmap.i setconsole.i loadfont.i loadkmap.i > openvt.i reset.i setkeycodes.i mktemp.i pipe_progress.i readlink.i run_parts.i > start_stop_daemon.i which.i awk.i patch.i sed.i vi.i find.i grep.i xargs.i > halt.i init.i mesg.i poweroff.i reboot.i init_shared.i adjtimex.i crond.i > crontab.i bbconfig.i dc.i devfsd.i eject.i hdparm.i last.i less.i makedevs.i > mountpoint.i mt.i rx.i setsid.i strings.i time.i watchdog.i insmod.i lsmod.i > modprobe.i rmmod.i arping.i ether-wake.i fakeidentd.i ftpgetput.i ftpgetput.i > hostname.i httpd.i ifconfig.i ifupdown.i inetd.i ip.i ipcalc.i ipaddr.i > iplink.i iproute.i iptunnel.i nameif.i nc.i netstat.i nslookup.i ping.i > route.i > telnet.i telnetd.i tftp.i traceroute.i vconfig.i wget.i zcip.i common.i > options.i packet.i pidfile.i signalpipe.i socket.i dhcpc.i clientpacket.i > clientsocket.i script.i dhcpd.i arpping.i files.i leases.i serverpacket.i > static_leases.i dumpleases.i free.i kill.i pidof.i ps.i renice.i sysctl.i > top.i > uptime.i addgroup.i adduser.i getty.i login.i passwd.i su.i sulogin.i vlock.i > deluser.i delgroup.i ash.i hush.i lash.i msh.i klogd.i logger.i syslogd.i > dmesg.i fbset.i fdflush.i fdformat.i fdisk.i freeramdisk.i fsck_minix.i > getopt.i hexdump.i hwclock.i ipcrm.i ipcs.i losetup.i mkfs_minix.i mkswap.i > more.i mount.i pivot_root.i rdate.i readprofile.i swaponoff.i umount.i > archive_xread_all.i archive_xread_all_eof.i check_header_gzip.i data_align.i > data_extract_all.i data_extract_to_buffer.i data_extract_to_stdout.i > data_skip.i decompress_bunzip2.i decompress_uncompress.i decompress_unzip.i > filter_accept_all.i filter_accept_list.i filter_accept_list_reassign.i > filter_accept_reject_list.i find_list_entry.i get_header_ar.i > get_header_cpio.i > get_header_tar.i header_list.i header_skip.i header_verbose_list.i > init_handle.i open_transformer.i seek_by_char.i seek_by_jump.i > unpack_ar_archive.i ip_parse_common_args.i ipaddress.i iplink.i iproute.i > iptunnel.i libnetlink.i ll_addr.i ll_map.i ll_proto.i ll_types.i rt_names.i > rtm_map.i utils.i pwd_grp.i pwd_grp.i cp_mv_stat.i getopt_mk_fifo_nod.i > bb_asprintf.i ask_confirmation.i change_identity.i chomp.i > compare_string_array.i concat_path_file.i copy_file.i copyfd.i > correct_password.i create_icmp_socket.i create_icmp6_socket.i device_open.i > dump.i error_msg.i error_msg_and_die.i find_mount_point.i find_pid_by_name.i > find_root_device.i fgets_str.i full_read.i full_write.i > get_last_path_component.i get_line_from_file.i hash_fd.i herror_msg.i > herror_msg_and_die.i human_readable.i inet_common.i inode_hash.i interface.i > isdirectory.i kernel_version.i last_char_is.i login.i loop.i make_directory.i > mode_string.i mtab.i mtab_file.i obscure.i parse_mode.i parse_number.i > perror_msg.i perror_msg_and_die.i print_file.i get_console.i > process_escape_sequence.i procps.i pw_encrypt.i qmodule.i read_package_field.i > recursive_action.i remove_file.i restricted_shell.i run_parts.i run_shell.i > safe_read.i safe_write.i safe_strncpy.i setup_environment.i simplify_path.i > trim.i u_signal_names.i vdprintf.i verror_msg.i vherror_msg.i vperror_msg.i > wfopen.i xconnect.i xgetcwd.i xgethostbyname.i xgethostbyname2.i xreadlink.i > xregcomp.i xgetlarg.i get_terminal_width_height.i fclose_nonstdin.i > fflush_stdout_and_exit.i getopt_ulflags.i wfopen_input.i > default_error_retval.i > speed_table.i perror_nomsg_and_die.i perror_nomsg.i skip_whitespace.i > bb_askpass.i warn_ignoring_args.i concat_subpath_file.i vfork_daemon_rexec.i > bb_echo.i messages.i xfuncs.i printf.i xgetularg.i safe_strtol.i bb_pwd.i > llist.i -quiet -dumpbase applets.i -march=i386 -mpreferred-stack-boundary=2 > -auxbase-strip busybox -Os -Wall -Wstrict-prototypes -Wshadow -version > -falign-functions=0 -falign-jumps=0 -falign-loops=0 -fomit-frame-pointer > -funit-at-a-time -o applets.s > > > (see foo1 for the order) > and get: > > [snip] > /libbb/llist.c:70: internal compiler error: Segmentation fault > Please submit a full bug report, > with preprocessed source if appropriate. > See <URL:http://gcc.gnu.org/bugs.html> for instructions. > make: *** [busybox] Error 1 > > > The segfault occurs depending on which file is near the end of the list. > Omitting the -combine switch did (iirc) trigger another, separate bug. > -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24446