Dear All,
*** Sorry! forget to attach the file in the previous mail ***
I had tried to learn the busybox and to build a execution image for my test
platform (mips system).
First, I input the following instructions to build the busybox.
make defnoconfig
make CROSS_COMPILE=mips-linux-
The output I got is summarized as below.
-rwxr-xr-x 1 snoopy snoopy 70088 2007-09-30 14:55 busybox
-rw-r--r-- 1 snoopy snoopy 13085 2007-09-30 14:55 busybox_ld.err
-rw-r--r-- 1 snoopy snoopy 0 2007-09-30 14:54 busybox_ld.out
-rwxr-xr-x 1 snoopy snoopy 81413 2007-09-30 14:54 busybox_unstripped
-rw-r--r-- 1 snoopy snoopy 43676 2007-09-30 14:54 busybox_unstripped.map
It seems that I create teh execution file of busybox successfully. But, why is
there a 'busybox_ld.err'? The size of busybox_ld.out is zero. The content of
busybox_ld.err is attachd with this email.
On the other hand, when I redo the above procedure to build the busybox on my
Ubuntu v7.04. The instructions I inputed is summarized as below:
make clean
make defnoconfig
make
The output I got is (1) there's a correct busybox_ld.out; (2) the size of
busybox_ld.err is zero.
Could everyone help me to answer the purpose of busybox_ld.out and busybox_err?
And, why I got a busybox.err in the first building? Thanks a lot.
Best Regards,
Jhyda.
GNU ld version 2.16.1 Debian GNU/Linux
Supported emulations:
elf32btsmip
elf32ltsmip
elf32btsmipn32
elf64btsmip
elf32ltsmipn32
elf64ltsmip
using internal linker script:
==================================================
/* Script for -z combreloc: combine and sort reloc sections */
OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips",
"elf32-tradlittlemips")
OUTPUT_ARCH(mips)
ENTRY(__start)
SEARCH_DIR("/opt/Arabella/mips-linux/lib");
/* Do we need any of these for elf?
__DYNAMIC = 0; */
SECTIONS
{
/* Read-only sections, merged into text segment: */
PROVIDE (__executable_start = 0x0400000); . = 0x0400000 + SIZEOF_HEADERS;
.interp : { *(.interp) }
.reginfo : { *(.reginfo) }
.dynamic : { *(.dynamic) }
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.gnu.version : { *(.gnu.version) }
.gnu.version_d : { *(.gnu.version_d) }
.gnu.version_r : { *(.gnu.version_r) }
.rel.dyn :
{
*(.rel.init)
*(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
*(.rel.fini)
*(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
*(.rel.data.rel.ro*)
*(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
*(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
*(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
*(.rel.ctors)
*(.rel.dtors)
*(.rel.got)
*(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*)
*(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*)
*(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*)
*(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*)
*(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
}
.rela.dyn :
{
*(.rela.init)
*(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
*(.rela.fini)
*(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
*(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
*(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
*(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
*(.rela.ctors)
*(.rela.dtors)
*(.rela.got)
*(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
*(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
*(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
*(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
*(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
}
.rel.plt : { *(.rel.plt) }
.rela.plt : { *(.rela.plt) }
.init :
{
KEEP (*(.init))
} =0
.plt : { *(.plt) }
.text :
{
_ftext = . ;
*(.text .stub .text.* .gnu.linkonce.t.*)
KEEP (*(.text.*personality*))
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
*(.mips16.fn.*) *(.mips16.call.*)
} =0
.fini :
{
KEEP (*(.fini))
} =0
PROVIDE (__etext = .);
PROVIDE (_etext = .);
PROVIDE (etext = .);
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
.rodata1 : { *(.rodata1) }
.sdata2 : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) }
.sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) }
.eh_frame_hdr : { *(.eh_frame_hdr) }
.eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) }
.gcc_except_table : ONLY_IF_RO { KEEP (*(.gcc_except_table))
*(.gcc_except_table.*) }
/* Adjust the address for the data segment. We want to adjust up to
the same address within the page on the next page up. */
. = 0x10000000;
/* Exception handling */
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
.gcc_except_table : ONLY_IF_RW { KEEP (*(.gcc_except_table))
*(.gcc_except_table.*) }
/* Thread Local Storage sections */
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
/* Ensure the __preinit_array_start label is properly aligned. We
could instead move the label definition inside the section, but
the linker would then create the section even if it turns out to
be empty, which isn't pretty. */
. = ALIGN(32 / 8);
PROVIDE (__preinit_array_start = .);
.preinit_array : { KEEP (*(.preinit_array)) }
PROVIDE (__preinit_array_end = .);
PROVIDE (__init_array_start = .);
.init_array : { KEEP (*(.init_array)) }
PROVIDE (__init_array_end = .);
PROVIDE (__fini_array_start = .);
.fini_array : { KEEP (*(.fini_array)) }
PROVIDE (__fini_array_end = .);
.ctors :
{
/* gcc uses crtbegin.o to find the start of
the constructors, so we make sure it is
first. Because this is a wildcard, it
doesn't matter if the user does not
actually link against crtbegin.o; the
linker won't look for a file to match a
wildcard. The wildcard also means that it
doesn't matter which directory crtbegin.o
is in. */
KEEP (*crtbegin*.o(.ctors))
/* We don't want to include the .ctor section from
from the crtend.o file until after the sorted ctors.
The .ctor section from the crtend file contains the
end of ctors marker and it must be last */
KEEP (*(EXCLUDE_FILE (*crtend*.o ) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
}
.dtors :
{
KEEP (*crtbegin*.o(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend*.o ) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
}
.jcr : { KEEP (*(.jcr)) }
.data.rel.ro : { *(.data.rel.ro.local) *(.data.rel.ro*) }
.data :
{
_fdata = . ;
*(.data .data.* .gnu.linkonce.d.*)
KEEP (*(.gnu.linkonce.d.*personality*))
SORT(CONSTRUCTORS)
}
.data1 : { *(.data1) }
. = .;
_gp = ALIGN(16) + 0x7ff0;
.got : { *(.got.plt) *(.got) }
/* We want the small data sections together, so single-instruction offsets
can access them all, and initialized data all before uninitialized, so
we can shorten the on-disk segment size. */
.sdata :
{
*(.sdata .sdata.* .gnu.linkonce.s.*)
}
.lit8 : { *(.lit8) }
.lit4 : { *(.lit4) }
_edata = .;
PROVIDE (edata = .);
__bss_start = .;
_fbss = .;
.sbss :
{
PROVIDE (__sbss_start = .);
PROVIDE (___sbss_start = .);
*(.dynsbss)
*(.sbss .sbss.* .gnu.linkonce.sb.*)
*(.scommon)
PROVIDE (__sbss_end = .);
PROVIDE (___sbss_end = .);
}
.bss :
{
*(.dynbss)
*(.bss .bss.* .gnu.linkonce.b.*)
*(COMMON)
/* Align here to ensure that the .bss section occupies space up to
_end. Align after .bss to ensure correct alignment even if the
.bss section disappears because there are no input sections. */
. = ALIGN(32 / 8);
}
. = ALIGN(32 / 8);
_end = .;
PROVIDE (end = .);
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
.gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
.gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
/DISCARD/ : { *(.note.GNU-stack) }
}
==================================================
attempt to open
/opt/Arabella/lib/gcc/mips-linux/4.0.2/../../../../mips-linux/lib/crt1.o
succeeded
/opt/Arabella/lib/gcc/mips-linux/4.0.2/../../../../mips-linux/lib/crt1.o
attempt to open
/opt/Arabella/lib/gcc/mips-linux/4.0.2/../../../../mips-linux/lib/crti.o
succeeded
/opt/Arabella/lib/gcc/mips-linux/4.0.2/../../../../mips-linux/lib/crti.o
attempt to open /opt/Arabella/lib/gcc/mips-linux/4.0.2/crtbegin.o succeeded
/opt/Arabella/lib/gcc/mips-linux/4.0.2/crtbegin.o
attempt to open applets/built-in.o succeeded
applets/built-in.o
attempt to open archival/lib.a succeeded
attempt to open archival/libunarchive/lib.a succeeded
attempt to open console-tools/lib.a succeeded
attempt to open coreutils/lib.a succeeded
attempt to open coreutils/libcoreutils/lib.a succeeded
attempt to open debianutils/lib.a succeeded
attempt to open e2fsprogs/lib.a succeeded
attempt to open editors/lib.a succeeded
attempt to open findutils/lib.a succeeded
attempt to open init/lib.a succeeded
attempt to open ipsvd/lib.a succeeded
attempt to open libbb/lib.a succeeded
(libbb/lib.a)bb_basename.o
(libbb/lib.a)default_error_retval.o
(libbb/lib.a)error_msg_and_die.o
(libbb/lib.a)messages.o
(libbb/lib.a)verror_msg.o
(libbb/lib.a)xfuncs.o
(libbb/lib.a)copyfd.o
(libbb/lib.a)error_msg.o
(libbb/lib.a)full_write.o
(libbb/lib.a)perror_msg.o
(libbb/lib.a)perror_msg_and_die.o
(libbb/lib.a)read.o
(libbb/lib.a)safe_write.o
attempt to open libpwdgrp/lib.a succeeded
attempt to open loginutils/lib.a succeeded
attempt to open miscutils/lib.a succeeded
attempt to open modutils/lib.a succeeded
attempt to open networking/lib.a succeeded
attempt to open networking/libiproute/lib.a succeeded
attempt to open networking/udhcp/lib.a succeeded
attempt to open procps/lib.a succeeded
attempt to open runit/lib.a succeeded
attempt to open selinux/lib.a succeeded
attempt to open shell/lib.a succeeded
attempt to open sysklogd/lib.a succeeded
attempt to open util-linux/lib.a succeeded
attempt to open archival/built-in.o succeeded
attempt to open archival/libunarchive/built-in.o succeeded
attempt to open console-tools/built-in.o succeeded
attempt to open coreutils/built-in.o succeeded
attempt to open coreutils/libcoreutils/built-in.o succeeded
attempt to open debianutils/built-in.o succeeded
attempt to open e2fsprogs/built-in.o succeeded
attempt to open editors/built-in.o succeeded
attempt to open findutils/built-in.o succeeded
attempt to open init/built-in.o succeeded
attempt to open ipsvd/built-in.o succeeded
attempt to open libbb/built-in.o succeeded
attempt to open libpwdgrp/built-in.o succeeded
attempt to open loginutils/built-in.o succeeded
attempt to open miscutils/built-in.o succeeded
attempt to open modutils/built-in.o succeeded
attempt to open networking/built-in.o succeeded
attempt to open networking/libiproute/built-in.o succeeded
attempt to open networking/udhcp/built-in.o succeeded
attempt to open procps/built-in.o succeeded
attempt to open runit/built-in.o succeeded
attempt to open selinux/built-in.o succeeded
attempt to open shell/built-in.o succeeded
attempt to open sysklogd/built-in.o succeeded
attempt to open util-linux/built-in.o succeeded
attempt to open /opt/Arabella/lib/gcc/mips-linux/4.0.2/libgcc.so failed
attempt to open /opt/Arabella/lib/gcc/mips-linux/4.0.2/libgcc.a succeeded
attempt to open /opt/Arabella/lib/gcc/mips-linux/4.0.2/libgcc_s.so succeeded
-lgcc_s (/opt/Arabella/lib/gcc/mips-linux/4.0.2/libgcc_s.so)
attempt to open /opt/Arabella/lib/gcc/mips-linux/4.0.2/libc.so failed
attempt to open /opt/Arabella/lib/gcc/mips-linux/4.0.2/libc.a failed
attempt to open
/opt/Arabella/lib/gcc/mips-linux/4.0.2/../../../../mips-linux/lib/libc.so
succeeded
opened script file
/opt/Arabella/lib/gcc/mips-linux/4.0.2/../../../../mips-linux/lib/libc.so
opened script file
/opt/Arabella/lib/gcc/mips-linux/4.0.2/../../../../mips-linux/lib/libc.so
attempt to open /opt/Arabella/mips-linux/lib/libc.so.6 succeeded
/opt/Arabella/mips-linux/lib/libc.so.6
attempt to open /opt/Arabella/mips-linux/lib/libc_nonshared.a succeeded
(/opt/Arabella/mips-linux/lib/libc_nonshared.a)elf-init.oS
attempt to open /opt/Arabella/lib/gcc/mips-linux/4.0.2/libgcc.so failed
attempt to open /opt/Arabella/lib/gcc/mips-linux/4.0.2/libgcc.a succeeded
attempt to open /opt/Arabella/lib/gcc/mips-linux/4.0.2/libgcc_s.so succeeded
-lgcc_s (/opt/Arabella/lib/gcc/mips-linux/4.0.2/libgcc_s.so)
attempt to open /opt/Arabella/lib/gcc/mips-linux/4.0.2/crtend.o succeeded
/opt/Arabella/lib/gcc/mips-linux/4.0.2/crtend.o
attempt to open
/opt/Arabella/lib/gcc/mips-linux/4.0.2/../../../../mips-linux/lib/crtn.o
succeeded
/opt/Arabella/lib/gcc/mips-linux/4.0.2/../../../../mips-linux/lib/crtn.o
ld.so.1 needed by /opt/Arabella/mips-linux/lib/libc.so.6
found ld.so.1 at /opt/Arabella/mips-linux/lib/ld.so.1
_______________________________________________
busybox mailing list
[email protected]
http://busybox.net/cgi-bin/mailman/listinfo/busybox