>
> Hi Eric,
>
> IMA is essentially dead. You would have to patch gcc-4.4 in various
> ways (most of the patches are in gcc bugzilla, IIRC) and I take it
> that busybox would need a bit of patching too (it has been 1 or 2
> years since I last compiled it in IMA mode).

Good to know thanks, I've had more luck with the attached gcc one-liner
[1] which generates fewer errors than IMA, however I'm still having
problems.  I've successfully run variants of this process on other
projects, although I've had to switch to an older version of gcc.

> 
> You are better off to just build all configured files as .s and cat
> them together.  That said, WTH are you doing? :)
>

Heh, fair question.  I have a process which "evolves" assembly code to
generate variants of existing programs which have slightly different
properties than the original e.g., smaller size, pass more tests,
etc... see [2].  I would very much like to push busybox through this
particular meat grinder as I think it could generate some interesting
results.

Thanks -- Eric

>
> Cheers,
> Bernhard


Footnotes: 
[1]  
#!/bin/sh
# attempt to build busybox with a single gcc invocation
#
#  note: first run make in the busybox directory to build some dependencies
#  
gcc -std=gnu99 -Iinclude -Ilibbb -include include/autoconf.h -D_GNU_SOURCE -DNDEBUG -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DBB_BT=AUTOCONF_TIMESTAMP -Wall -Wshadow -Wwrite-strings -Wundef -Wstrict-prototypes -Wunused -Wunused-parameter -Wunused-function -Wunused-value -Wmissing-prototypes -Wmissing-declarations -Wdeclaration-after-statement -Wold-style-definition -fno-builtin-strlen -finline-limit=0 -fomit-frame-pointer -ffunction-sections -fdata-sections -fno-guess-branch-probability -funsigned-char -static-libgcc -falign-functions=1 -falign-jumps=1 -falign-labels=1 -falign-loops=1 -Os -include include/autoconf.h --combine -fwhole-program -o bb applets/applets.c archival/ar.c archival/bbunzip.c archival/bzip2.c archival/cpio.c archival/gzip.c archival/lzop.c archival/rpm.c archival/rpm2cpio.c archival/tar.c archival/unzip.c archival/libarchive/data_align.c archival/libarchive/data_extract_all.c archival/libarchive/data_extract_to_command.c archival/libarchive/data_extract_to_stdout.c archival/libarchive/data_skip.c archival/libarchive/decompress_bunzip2.c archival/libarchive/decompress_uncompress.c archival/libarchive/decompress_unlzma.c archival/libarchive/decompress_unxz.c archival/libarchive/decompress_unzip.c archival/libarchive/filter_accept_all.c archival/libarchive/filter_accept_list.c archival/libarchive/filter_accept_reject_list.c archival/libarchive/find_list_entry.c archival/libarchive/get_header_ar.c archival/libarchive/get_header_cpio.c archival/libarchive/get_header_tar.c archival/libarchive/get_header_tar_bz2.c archival/libarchive/get_header_tar_gz.c archival/libarchive/get_header_tar_lzma.c archival/libarchive/header_list.c archival/libarchive/header_skip.c archival/libarchive/header_verbose_list.c archival/libarchive/init_handle.c archival/libarchive/lzo1x_1.c archival/libarchive/lzo1x_1o.c archival/libarchive/lzo1x_d.c archival/libarchive/open_transformer.c archival/libarchive/seek_by_jump.c archival/libarchive/seek_by_read.c archival/libarchive/unpack_ar_archive.c console-tools/chvt.c console-tools/clear.c console-tools/deallocvt.c console-tools/dumpkmap.c console-tools/fgconsole.c console-tools/kbd_mode.c console-tools/loadfont.c console-tools/loadkmap.c console-tools/openvt.c console-tools/reset.c console-tools/resize.c console-tools/setconsole.c console-tools/setkeycodes.c console-tools/setlogcons.c console-tools/showkey.c coreutils/basename.c coreutils/cal.c coreutils/cat.c coreutils/catv.c coreutils/chgrp.c coreutils/chmod.c coreutils/chown.c coreutils/chroot.c coreutils/cksum.c coreutils/comm.c coreutils/cp.c coreutils/cut.c coreutils/date.c coreutils/dd.c coreutils/df.c coreutils/dirname.c coreutils/dos2unix.c coreutils/du.c coreutils/echo.c coreutils/env.c coreutils/expand.c coreutils/expr.c coreutils/false.c coreutils/fold.c coreutils/fsync.c coreutils/head.c coreutils/hostid.c coreutils/id.c coreutils/install.c coreutils/ln.c coreutils/logname.c coreutils/ls.c coreutils/md5_sha1_sum.c coreutils/mkdir.c coreutils/mkfifo.c coreutils/mknod.c coreutils/mv.c coreutils/nice.c coreutils/nohup.c coreutils/od.c coreutils/printenv.c coreutils/printf.c coreutils/pwd.c coreutils/readlink.c coreutils/realpath.c coreutils/rm.c coreutils/rmdir.c coreutils/seq.c coreutils/sleep.c coreutils/sort.c coreutils/split.c coreutils/stat.c coreutils/stty.c coreutils/sum.c coreutils/sync.c coreutils/tac.c coreutils/tail.c coreutils/tee.c coreutils/test.c coreutils/test_ptr_hack.c coreutils/touch.c coreutils/tr.c coreutils/true.c coreutils/tty.c coreutils/uname.c coreutils/uniq.c coreutils/usleep.c coreutils/uudecode.c coreutils/uuencode.c coreutils/wc.c coreutils/who.c coreutils/whoami.c coreutils/yes.c coreutils/libcoreutils/cp_mv_stat.c coreutils/libcoreutils/getopt_mk_fifo_nod.c debianutils/mktemp.c debianutils/pipe_progress.c debianutils/run_parts.c debianutils/start_stop_daemon.c debianutils/which.c e2fsprogs/chattr.c e2fsprogs/e2fs_lib.c e2fsprogs/fsck.c e2fsprogs/lsattr.c editors/awk.c editors/cmp.c editors/diff.c editors/ed.c editors/patch.c editors/sed.c editors/vi.c findutils/find.c findutils/grep.c findutils/xargs.c init/bootchartd.c init/halt.c init/init.c init/mesg.c libbb/appletlib.c libbb/ask_confirmation.c libbb/bb_askpass.c libbb/bb_basename.c libbb/bb_bswap_64.c libbb/bb_do_delay.c libbb/bb_pwd.c libbb/bb_qsort.c libbb/bb_strtonum.c libbb/change_identity.c libbb/chomp.c libbb/compare_string_array.c libbb/concat_path_file.c libbb/concat_subpath_file.c libbb/copy_file.c libbb/copyfd.c libbb/correct_password.c libbb/crc32.c libbb/create_icmp6_socket.c libbb/create_icmp_socket.c libbb/default_error_retval.c libbb/device_open.c libbb/dump.c libbb/execable.c libbb/fclose_nonstdin.c libbb/fflush_stdout_and_exit.c libbb/fgets_str.c libbb/find_mount_point.c libbb/find_pid_by_name.c libbb/find_root_device.c libbb/full_write.c libbb/get_console.c libbb/get_cpu_count.c libbb/get_last_path_component.c libbb/get_line_from_file.c libbb/get_volsize.c libbb/getopt32.c libbb/getpty.c libbb/hash_md5_sha.c libbb/herror_msg.c libbb/human_readable.c libbb/inet_common.c libbb/info_msg.c libbb/inode_hash.c libbb/isdirectory.c libbb/kernel_version.c libbb/last_char_is.c libbb/lineedit.c libbb/lineedit_ptr_hack.c libbb/llist.c libbb/login.c libbb/loop.c libbb/make_directory.c libbb/makedev.c libbb/match_fstype.c libbb/messages.c libbb/mode_string.c libbb/obscure.c libbb/parse_config.c libbb/parse_mode.c libbb/perror_msg.c libbb/perror_nomsg.c libbb/perror_nomsg_and_die.c libbb/pidfile.c libbb/platform.c libbb/print_flags.c libbb/printable.c libbb/printable_string.c libbb/process_escape_sequence.c libbb/procps.c libbb/progress.c libbb/ptr_to_globals.c libbb/pw_encrypt.c libbb/read.c libbb/read_key.c libbb/read_printf.c libbb/recursive_action.c libbb/remove_file.c libbb/rtc.c libbb/run_shell.c libbb/safe_gethostname.c libbb/safe_poll.c libbb/safe_strncpy.c libbb/safe_write.c libbb/setup_environment.c libbb/signals.c libbb/simplify_path.c libbb/single_argv.c libbb/skip_whitespace.c libbb/speed_table.c libbb/str_tolower.c libbb/strrstr.c libbb/systemd_support.c libbb/time.c libbb/trim.c libbb/u_signal_names.c libbb/udp_io.c libbb/unicode.c libbb/update_passwd.c libbb/utmp.c libbb/uuencode.c libbb/vdprintf.c libbb/verror_msg.c libbb/vfork_daemon_rexec.c libbb/warn_ignoring_args.c libbb/wfopen.c libbb/wfopen_input.c libbb/write.c libbb/xatonum.c libbb/xconnect.c libbb/xfunc_die.c libbb/xfuncs.c libbb/xfuncs_printf.c libbb/xgetcwd.c libbb/xgethostbyname.c libbb/xreadlink.c libbb/xrealloc_vector.c libbb/xregcomp.c libpwdgrp/pwd_grp.c libpwdgrp/uidgid_get.c loginutils/addgroup.c loginutils/adduser.c loginutils/chpasswd.c loginutils/cryptpw.c loginutils/deluser.c loginutils/getty.c loginutils/login.c loginutils/passwd.c loginutils/su.c loginutils/sulogin.c loginutils/vlock.c mailutils/mail.c mailutils/mime.c mailutils/popmaildir.c mailutils/sendmail.c miscutils/adjtimex.c miscutils/beep.c miscutils/chrt.c miscutils/crond.c miscutils/crontab.c miscutils/dc.c miscutils/devmem.c miscutils/eject.c miscutils/fbsplash.c miscutils/hdparm.c miscutils/ionice.c miscutils/last_fancy.c miscutils/less.c miscutils/makedevs.c miscutils/man.c miscutils/microcom.c miscutils/mountpoint.c miscutils/mt.c miscutils/raidautorun.c miscutils/readahead.c miscutils/runlevel.c miscutils/rx.c miscutils/setsid.c miscutils/strings.c miscutils/taskset.c miscutils/time.c miscutils/timeout.c miscutils/ttysize.c miscutils/ubi_attach_detach.c miscutils/volname.c miscutils/wall.c miscutils/watchdog.c modutils/modinfo.c modutils/modprobe-small.c modutils/modutils.c networking/arp.c networking/arping.c networking/brctl.c networking/dnsd.c networking/ether-wake.c networking/ftpd.c networking/ftpgetput.c networking/hostname.c networking/httpd.c networking/ifconfig.c networking/ifenslave.c networking/ifplugd.c networking/ifupdown.c networking/inetd.c networking/interface.c networking/ip.c networking/ipcalc.c networking/isrv.c networking/isrv_identd.c networking/nameif.c networking/nbd-client.c networking/nc.c networking/netstat.c networking/nslookup.c networking/ntpd.c networking/ping.c networking/pscan.c networking/route.c networking/slattach.c networking/tcpudp.c networking/tcpudp_perhost.c networking/telnet.c networking/telnetd.c networking/tftp.c networking/traceroute.c networking/tunctl.c networking/vconfig.c networking/wget.c networking/zcip.c networking/libiproute/ip_parse_common_args.c networking/libiproute/ipaddress.c networking/libiproute/iplink.c networking/libiproute/iproute.c networking/libiproute/iprule.c networking/libiproute/iptunnel.c networking/libiproute/libnetlink.c networking/libiproute/ll_addr.c networking/libiproute/ll_map.c networking/libiproute/ll_proto.c networking/libiproute/ll_types.c networking/libiproute/rt_names.c networking/libiproute/rtm_map.c networking/libiproute/utils.c networking/udhcp/arpping.c networking/udhcp/common.c networking/udhcp/dhcpc.c networking/udhcp/dhcpd.c networking/udhcp/dhcprelay.c networking/udhcp/domain_codec.c networking/udhcp/dumpleases.c networking/udhcp/files.c networking/udhcp/leases.c networking/udhcp/packet.c networking/udhcp/signalpipe.c networking/udhcp/socket.c networking/udhcp/static_leases.c printutils/lpd.c printutils/lpr.c procps/free.c procps/fuser.c procps/iostat.c procps/kill.c procps/mpstat.c procps/nmeter.c procps/pgrep.c procps/pidof.c procps/pmap.c procps/powertop.c procps/ps.c procps/pstree.c procps/renice.c procps/smemcap.c procps/sysctl.c procps/top.c procps/uptime.c procps/watch.c runit/chpst.c runit/runsv.c runit/runsvdir.c runit/sv.c runit/svlogd.c shell/ash.c shell/ash_ptr_hack.c shell/math.c shell/random.c shell/shell_common.c sysklogd/klogd.c sysklogd/logread.c sysklogd/syslogd_and_logger.c util-linux/acpid.c util-linux/blkid.c util-linux/blockdev.c util-linux/dmesg.c util-linux/fbset.c util-linux/fdformat.c util-linux/fdisk.c util-linux/flock.c util-linux/freeramdisk.c util-linux/fsck_minix.c util-linux/getopt.c util-linux/hexdump.c util-linux/hwclock.c util-linux/ipcrm.c util-linux/ipcs.c util-linux/losetup.c util-linux/lspci.c util-linux/lsusb.c util-linux/mdev.c util-linux/mkfs_ext2.c util-linux/mkfs_minix.c util-linux/mkfs_vfat.c util-linux/mkswap.c util-linux/more.c util-linux/mount.c util-linux/pivot_root.c util-linux/rdate.c util-linux/rdev.c util-linux/readprofile.c util-linux/rev.c util-linux/script.c util-linux/scriptreplay.c util-linux/setarch.c util-linux/swaponoff.c util-linux/switch_root.c util-linux/umount.c util-linux/volume_id/btrfs.c util-linux/volume_id/get_devname.c util-linux/volume_id/util.c util-linux/volume_id/volume_id.c
[2]  http://cs.unm.edu/~eschulte/data/ase2010-asm-preprint.pdf

-- 
Eric Schulte
http://cs.unm.edu/~eschulte/
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to