Hi, We haven't tested x86-port on Cygwin. But I think the problem is that you use linker configured only for PE targets (default for Windows). Embox needs ELF support from the linker (elf32-i386).
Try ld --help | grep target It will display targets supported by your linker. I would also tried to play with --format and --oformat flags. The same problem has been discussed here: http://forum.osdev.org/viewtopic.php?f=13&t=18549 2011/6/4 Foximulder <[email protected]> > Hi, > I want to build the binary with Cygwin, but.... > > make config PROJECT=x86 PROFILE=console > > I get a linker error.... > > ld -static -nostdlib --cref --relax -T ./build/base/obj/embox.lds > ./src/kernel/nosys.lds -N -g \ > ./build/base/obj/src/kernel/critical/count.o \ > ./build/base/obj/src/kernel/irq.o \ > ./build/base/obj/src/kernel/init.o \ > ./build/base/obj/src/kernel/nosys.o \ > ./build/base/obj/src/kernel/softirq.o \ > ./build/base/obj/src/kernel/thread/core.o \ > ./build/base/obj/src/kernel/thread/sched.o \ > > ./build/base/obj/src/kernel/thread/sched_policy/priority_based.o \ > ./build/base/obj/src/kernel/thread/sync/pipe_manager.o \ > ./build/base/obj/src/kernel/thread/sync/mutex.o \ > ./build/base/obj/src/kernel/thread/sync/message.o \ > ./build/base/obj/src/kernel/timer.o \ > ./build/base/obj/src/cmds/cat.o \ > ./build/base/obj/src/cmds/esh/esh.o \ > ./build/base/obj/src/cmds/help.o \ > ./build/base/obj/src/cmds/ls.o \ > ./build/base/obj/src/cmds/lsmod.o \ > ./build/base/obj/src/cmds/lspnp.o \ > ./build/base/obj/src/cmds/man.o \ > ./build/base/obj/src/cmds/mem.o \ > ./build/base/obj/src/cmds/mount.o \ > ./build/base/obj/src/cmds/readelf.o \ > ./build/base/obj/src/cmds/rm.o \ > ./build/base/obj/src/cmds/runelf.o \ > ./build/base/obj/src/cmds/test.o \ > ./build/base/obj/src/cmds/wmem.o \ > ./build/base/obj/src/drivers/ambapp/amba_registry.o \ > ./build/base/obj/src/drivers/ambapp/ambapp.o \ > ./build/base/obj/src/drivers/clock/pit.o \ > ./build/base/obj/src/drivers/interrupt/apic.o \ > ./build/base/obj/src/drivers/keyboard/keyboard.o \ > ./build/base/obj/src/drivers/serial/serial_port.o \ > ./build/base/obj/src/drivers/char/vtbuild.o \ > ./build/base/obj/src/drivers/char/vtparse.o \ > ./build/base/obj/src/drivers/char/vtparse_state.o \ > ./build/base/obj/src/drivers/char/terminal.o \ > ./build/base/obj/src/fs/file.o \ > ./build/base/obj/src/fs/filesystems.o \ > ./build/base/obj/src/fs/vfs.o \ > ./build/base/obj/src/fs/devfs/devfs.o \ > ./build/base/obj/src/fs/fs_driver.o \ > ./build/base/obj/src/fs/node.o \ > ./build/base/obj/src/fs/ramfs/ramfs.o \ > ./build/base/obj/src/fs/rootfs/rootfs.o \ > ./build/base/obj/src/arch/x86/kernel/arch.o \ > ./build/base/obj/src/arch/x86/kernel/context.o \ > ./build/base/obj/src/arch/x86/kernel/context_switch.o \ > ./build/base/obj/src/arch/x86/kernel/boot.o \ > ./build/base/obj/src/arch/x86/kernel/idt.o \ > ./build/base/obj/src/arch/x86/kernel/boot_idt.o \ > ./build/base/obj/src/arch/x86/kernel/irq_handler.o \ > ./build/base/obj/src/arch/x86/kernel/gdt.o \ > ./build/base/obj/src/arch/x86/kernel/gdt_flush.o \ > ./build/base/obj/src/tests/recursion/stack_recursion.o \ > ./build/base/obj/src/tests/setjmp/setjmp.o \ > ./build/base/obj/depsinject.o \ > -L./build/base/lib \ > -lutil \ > -ltest \ > -llinux \ > -lframework \ > -larch \ > -lc \ > -Map build/base/bin/embox.map \ > -o build/base/bin/embox > ld: cannot perform PE operations on non PE output file > 'build/base/bin/embox'. > make[2]: *** [build/base/bin/embox] Error 1 > make[1]: *** [build_base_target] Error 2 > make: *** [all] Error 2 > > > Can anyone help me please, has anyone the same error? Whats wrong? > > foximulder > > -- Best regards, Eldar Sh. Abusalimov

