This is the mail archive of the
ecos-bugs@sourceware.org
mailing list for the eCos project.
[Bug 1001252] New: Problem building "Linux Synthetic" target onLinux (Ubuntu)
- From: bugzilla-daemon at bugs dot ecos dot sourceware dot org
- To: unassigned at bugs dot ecos dot sourceware dot org
- Date: Mon, 30 May 2011 15:43:48 +0100
- Subject: [Bug 1001252] New: Problem building "Linux Synthetic" target onLinux (Ubuntu)
- Auto-submitted: auto-generated
Please do not reply to this email. Use the web interface provided at:
http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001252
Summary: Problem building "Linux Synthetic" target on Linux
(Ubuntu)
Product: eCos
Version: 3.0
Platform: linux (Linux synthetic target)
OS/Version: HostOS: Linux
Status: UNCONFIRMED
Severity: critical
Priority: low
Component: ConfigTool
AssignedTo: unassigned@bugs.ecos.sourceware.org
ReportedBy: ern0@linkbroker.hu
CC: ecos-bugs@ecos.sourceware.org
Class: Advice Request
I'm trying to building Synthetic Linux target on Ubuntu. My software
environment:
* Ubuntu 11.4
* GCC is 4.5.2
* ECOS 3.0
In the Config Tool I have set up "Linux Sythetic" target with "all" packages.
Clicking on "build" the compilation starts, but later it says:
> /opt/ecos/ecos-3.0/packages/hal/synth/i386linux/v3_0/src/syscall-i386-linux-1.0.S:
> Assembler messages: make: Leaving
> directory `/opt/ecos/linux_build'
> /opt/ecos/ecos-3.0/packages/hal/synth/i386linux/v3_0/src/syscall-i386-linux-1.0.S:457:
> Error: .size expression for
> __restore_rt does not evaluate to a constant
>
> /opt/ecos/ecos-3.0/packages/hal/synth/i386linux/v3_0/src/syscall-i386-linux-1.0.S:457:
> Error: .size expression for __restore
> does not evaluate to a constant
> make:
> [src/syscall-i386-linux-1.0.o.d] Error 1 make: [build] Error 2
The content of the file
**/opt/ecos/ecos-3.0/packages/hal/synth/i386linux/v3_0/src/syscall-i386-linux-1.0.S**
from the line **434** is:
////////////////////////////////////////////////////////////////////////////
//
----------------------------------------------------------------------------
// Special support for returning from a signal handler. In theory no
special
// action is needed, but with some versions of the kernel on some
// architectures that is not good enough. Instead returning has to happen
// via another system call.
.align 16
.global cyg_hal_sys_restore_rt
cyg_hal_sys_restore_rt:
movl $SYS_rt_sigreturn, %eax
int $0x80
1:
.type __restore_rt,@function
.size __restore_rt,1b - __restore_rt
.align 8
.global cyg_hal_sys_restore
cyg_hal_sys_restore:
popl %eax
movl $SYS_sigreturn, %eax
int $0x80
1:
.type __restore,@function
.size __restore,1b - __restore
//////////////////////////////////////////////////////////////////////////////
I think the __restore and __restore_rt is undefinied.
I've tried to comment out this part and remove signal-related packages, but It
looks to be the part of the kernel; the build seems succeed with outcommented
parts, but when I compiled example apps, there were linker error because of the
missing symbols.
Silly idea, but I've tried to replace "__restore" with "cyg_hal_sys_restore"
and "...rt" same way, but the result is: the build is ok (as no undef), example
compiling is ok (as no missing symbol), but example a.out throws segfault just
as I start it.
Folders and other settings are ok, a I said, I can compile the examples if I
"fix" the errors. Unfortunatelly, (I'm not familiar with Linux asm, I don't
really understand what happens here, what .type and .size stuff means and what
is the reason of putting anything after an int $80. Will it run? Or it is just
a kind of some table required for a syscall? Sorry, I don't know.)
--
Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.