This is the mail archive of the ecos-bugs@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug 1001252] New: Problem building "Linux Synthetic" target onLinux (Ubuntu)


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]