Subversion Repositories HelenOS

Compare Revisions

No changes between revisions

Ignore whitespace Rev 3554 → Rev 3555

/branches/dynload/uspace/app/dltest/Makefile
33,6 → 33,7
#
 
LIBC_PREFIX = ../../lib/libc
LIBCS_PREFIX = ../../lib/libc-shared
SOFTINT_PREFIX = ../../lib/softint
RTLD_PREFIX = ../../lib/rtld
include $(LIBC_PREFIX)/Makefile.toolchain
73,14 → 74,14
depend:
$(CC) $(DEFS) $(CFLAGS) -M $(SOURCES) > Makefile.depend
 
$(OUTPUT): $(OBJECTS) $(LIBS) arch/$(ARCH)/_link.ld
$(LD) -T arch/$(ARCH)/_link.ld $(OBJECTS) $(LIBS) $(LFLAGS) -o $@ -Map $(OUTPUT).map
$(OUTPUT): $(OBJECTS) $(LIBS)
$(LD) -T $(LIBCS_PREFIX)/arch/$(ARCH)/_link.ld $(OBJECTS) $(LIBS) $(LFLAGS) -o $@ -Map $(OUTPUT).map
 
disasm:
$(OBJDUMP) -d $(OUTPUT) >$(OUTPUT).disasm
 
arch/$(ARCH)/_link.ld: arch/$(ARCH)/_link.ld.in
$(CC) $(DEFS) $(CFLAGS) -DLIBC_PREFIX=$(LIBC_PREFIX) -E -x c $< | grep -v "^\#" > $@
#arch/$(ARCH)/_link.ld: arch/$(ARCH)/_link.ld.in
# $(CC) $(DEFS) $(CFLAGS) -DLIBC_PREFIX=$(LIBC_PREFIX) -E -x c $< | grep -v "^\#" > $@
 
%.o: %.S
$(CC) $(DEFS) $(AFLAGS) $(CFLAGS) -D__ASM__ -c $< -o $@
/branches/dynload/uspace/app/dltest/arch/ppc32/_link.ld.in
File deleted
/branches/dynload/uspace/app/dltest/arch/ia32/_link.ld.in
File deleted
/branches/dynload/uspace/lib/rtld/arch/ia32/src/bootstrap.c
44,14 → 44,14
 
static void kputint(unsigned i)
{
unsigned dummy;
asm volatile (
"movl $32, %%eax;"
"int $0x30"
: "=d" (dummy) /* output - %edx clobbered */
: "d" (i) /* input */
: "%eax","%ecx" /* all scratch registers clobbered */
);
// unsigned dummy;
// asm volatile (
// "movl $32, %%eax;"
// "int $0x30"
// : "=d" (dummy) /* output - %edx clobbered */
// : "d" (i) /* input */
// : "%eax","%ecx" /* all scratch registers clobbered */
// );
}
 
void __bootstrap(pcb_t *pcb)
/branches/dynload/uspace/lib/libc-shared/Makefile
60,7 → 60,7
 
.PHONY: all clean
 
all: $(OUTPUT)
all: $(OUTPUT) arch/$(ARCH)/_link.ld
 
inc:
ln -sfn ../arch/$(ARCH)/include include/arch
68,11 → 68,14
-include Makefile.depend
 
clean:
-rm -f $(OUTPUT) $(OUTPUT).map $(OUTPUT).disasm $(OUTPUT).sections Makefile.depend *.o arch/$(ARCH)/_link.ld include/arch
-rm -f $(OUTPUT) $(OUTPUT).map $(OUTPUT).disasm $(OUTPUT).sections Makefile.depend *.o arch/$(ARCH)/_lib.ld include/arch
find arch/$(ARCH)/ -name '*.o' -follow -exec rm \{\} \;
 
$(OUTPUT): $(LIBS) arch/$(ARCH)/_link.ld
$(LD) -T arch/$(ARCH)/_link.ld $(LFLAGS) $(LIBS) -o $@ -Map $(OUTPUT).map
$(OUTPUT): $(LIBS) arch/$(ARCH)/_lib.ld
$(LD) -T arch/$(ARCH)/_lib.ld $(LFLAGS) $(LIBS) -o $@ -Map $(OUTPUT).map
 
arch/$(ARCH)/_lib.ld: arch/$(ARCH)/_lib.ld.in
$(CC) $(DEFS) $(CFLAGS) -DLIBC_PREFIX=$(LIBC_PREFIX) -E -x c $< | grep -v "^\#" > $@
 
arch/$(ARCH)/_link.ld: arch/$(ARCH)/_link.ld.in
$(CC) $(DEFS) $(CFLAGS) -DLIBC_PREFIX=$(LIBC_PREFIX) -E -x c $< | grep -v "^\#" > $@
/branches/dynload/uspace/lib/libc-shared/arch/ppc32/_link.ld.in
1,11 → 1,17
STARTUP(LIBC_PREFIX/arch/ARCH/src/entry.o)
ENTRY(__entry)
 
PHDRS {
interp PT_INTERP;
text PT_LOAD FLAGS(5);
data PT_LOAD FLAGS(6);
}
 
SECTIONS {
.interp : {
*(.interp);
} :interp
 
. = 0x1000;
 
.init ALIGN(0x1000) : SUBALIGN(0x1000) {
19,7 → 25,7
 
.rel.plt ALIGN(0x1000) : {
*(.rel.plt);
}
} :text
/*
*.rel.dyn MUST FOLLOW IMMEDIATELY after .rel.plt
* without alignment gap or DT_REL will be broken
56,7 → 62,7
*(.got.plt);
} :data
 
.tdata : {
/* .tdata : {
_tdata_start = .;
*(.tdata);
_tdata_end = .;
67,6 → 73,7
_tbss_end = .;
} :data
_tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
*/
.bss : {
*(.sbss);
*(COMMON);
Property changes:
Added: svn:mergeinfo
/branches/dynload/uspace/lib/libc-shared/arch/ppc32/_lib.ld.in
0,0 → 1,82
ENTRY(__entry)
 
PHDRS {
text PT_LOAD FLAGS(5);
data PT_LOAD FLAGS(6);
}
 
SECTIONS {
. = 0x1000;
 
.init ALIGN(0x1000) : SUBALIGN(0x1000) {
*(.init);
} :text
.text : {
*(.text);
*(.text.*);
*(.rodata*);
} :text
 
.rel.plt ALIGN(0x1000) : {
*(.rel.plt);
}
/*
*.rel.dyn MUST FOLLOW IMMEDIATELY after .rel.plt
* without alignment gap or DT_REL will be broken
*/
.rel.dyn : {
*(.rel.*);
} :text
 
.dynamic ALIGN(0x1000) : {
*(.dynamic);
} :text
 
.dynsym ALIGN(0x1000) : {
*(.dynsym);
} :text
 
.dynstr ALIGN(0x1000) : {
*(.dynstr);
} :text
 
.data ALIGN(0x1000) : SUBALIGN(0x1000) {
*(.data);
*(.sdata);
} :data
 
.data.rel ALIGN(0x1000) : {
*(.data.rel);
} :data
 
.got ALIGN(0x1000) : SUBALIGN(0x1000) {
*(.got);
} :data
.got.plt ALIGN(0x1000) : SUBALIGN(0x1000) {
*(.got.plt);
} :data
 
.tdata : {
_tdata_start = .;
*(.tdata);
_tdata_end = .;
} :data
.tbss : {
_tbss_start = .;
*(.tbss);
_tbss_end = .;
} :data
_tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
.bss : {
*(.sbss);
*(COMMON);
*(.bss);
} :data
 
.plt ALIGN(0x1000) : SUBALIGN(0x1000) {
*(.plt);
} :data
 
. = ALIGN(0x1000);
_heap = .;
}
Property changes:
Added: svn:mergeinfo
/branches/dynload/uspace/lib/libc-shared/arch/ia32/_link.ld.in
1,11 → 1,17
STARTUP(LIBC_PREFIX/arch/ARCH/src/entry.o)
ENTRY(__entry)
 
PHDRS {
interp PT_INTERP;
text PT_LOAD FLAGS(5);
data PT_LOAD FLAGS(6);
}
 
SECTIONS {
.interp : {
*(.interp);
} :interp
 
. = 0x1000;
 
.init ALIGN(0x1000) : SUBALIGN(0x1000) {
32,6 → 38,7
*(.plt);
} :text
 
 
.dynamic ALIGN(0x1000) : {
*(.dynamic);
} :text
64,7 → 71,7
*(.bss);
} :data
 
.tdata : {
/* .tdata : {
_tdata_start = .;
*(.tdata);
_tdata_end = .;
75,7 → 82,8
_tbss_end = .;
} :data
_tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
*/
. = ALIGN(0x1000);
_heap = .;
 
}
Property changes:
Added: svn:mergeinfo
/branches/dynload/uspace/lib/libc-shared/arch/ia32/_lib.ld.in
0,0 → 1,81
ENTRY(__entry)
 
PHDRS {
text PT_LOAD FLAGS(5);
data PT_LOAD FLAGS(6);
}
 
SECTIONS {
. = 0x1000;
 
.init ALIGN(0x1000) : SUBALIGN(0x1000) {
*(.init);
} :text
.text : {
*(.text);
*(.text.*);
*(.rodata*);
} :text
 
.rel.plt ALIGN(0x1000) : {
*(.rel.plt);
}
/*
*.rel.dyn MUST FOLLOW IMMEDIATELY after .rel.plt
* without alignment gap or DT_REL will be broken
*/
.rel.dyn : {
*(.rel.*);
} :text
 
.plt ALIGN(0x1000) : SUBALIGN(0x1000) {
*(.plt);
} :text
 
.dynamic ALIGN(0x1000) : {
*(.dynamic);
} :text
 
.dynsym ALIGN(0x1000) : {
*(.dynsym);
} :text
 
.dynstr ALIGN(0x1000) : {
*(.dynstr);
} :text
 
.data ALIGN(0x1000) : SUBALIGN(0x1000) {
*(.data);
} :data
 
.data.rel ALIGN(0x1000) : {
*(.data.rel);
} :data
 
.got ALIGN(0x1000) : SUBALIGN(0x1000) {
*(.got);
} :data
.got.plt ALIGN(0x1000) : SUBALIGN(0x1000) {
*(.got.plt);
} :data
 
.bss : {
*(COMMON);
*(.bss);
} :data
 
.tdata : {
_tdata_start = .;
*(.tdata);
_tdata_end = .;
} :data
.tbss : {
_tbss_start = .;
*(.tbss);
_tbss_end = .;
} :data
_tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
. = ALIGN(0x1000);
_heap = .;
}
Property changes:
Added: svn:mergeinfo