public inbox for sid@sourceware.org
 help / color / mirror / Atom feed
From: "J. Johnston" <jjohnstn@cygnus.com>
To: Cristiano Ligieri Pereira <cpereira@ics.uci.edu>
Cc: Ben Elliston <bje@redhat.com>, sid@sources.redhat.com
Subject: Re: Running the hello.c example
Date: Mon, 19 Nov 2001 10:58:00 -0000	[thread overview]
Message-ID: <3BF9561B.4384B76B@cygnus.com> (raw)
Message-ID: <20011119105800.gRmcsRnRIwusHqF-gUquH7yvekebRymw3NhGY0T6DEM@z> (raw)
In-Reply-To: <Pine.SOL.4.20.0111181905560.10285-100000@washoe.ics.uci.edu>

Cristiano Ligieri Pereira wrote:
> 
> These are the number in the file newlib/arm-elf/newlib/libc/sys/arm/swi.h:
> 
> /**************************************************************************\
> *                               SWI numbers                               *
> \**************************************************************************/
> 
> #define SWI_WriteC                 0x0
> #define SWI_Write0                 0x2
> #define SWI_ReadC                  0x4
> #define SWI_CLI                    0x5
> #define SWI_GetEnv                 0x10
> #define SWI_Exit                   0x11
> #define SWI_EnterOS                0x16
> 
> #define SWI_GetErrno               0x60
> #define SWI_Clock                  0x61
> #define SWI_Time                   0x63
> #define SWI_Remove                 0x64
> #define SWI_Rename                 0x65
> #define SWI_Open                   0x66
> 
> #define SWI_Close                  0x68
> #define SWI_Write                  0x69
> #define SWI_Read                   0x6a
> #define SWI_Seek                   0x6b
> #define SWI_Flen                   0x6c
> 
> #define SWI_IsTTY                  0x6e
> #define SWI_TmpNam                 0x6f
> #define SWI_InstallHandler         0x70
>

Christiano,  

  You likely have built newlib incorrectly.  See newlib/configure.host.  The
default
is to define ARM_RDI_MONITOR which activates the Angel code. 

#       newlib_cflags="${newlib_cflags} -DARM_RDP_MONITOR"
        newlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR"
        ;;

This means that instead of the SWI codes you are quoting above, you will get the
AngelSWI_Reason_xxx codes which follow.  The value for write is 0x5 which
matches
what sid is expecting.

  You should verify that you have not changed these lines and if so, you should
clean your newlib build and reconfigure/build again.

-- Jeff J.
 
> and these are the numbers on the file sid/src/sid/component/gloss/angel.h:
> 
>   enum syscalls /* See also: newlib/libc/sys/arm/swi.h AngelSWI_Reason_*
> */
>   {
>     syscall_open = 0x1,
>     syscall_close = 0x2,
>     syscall_writec = 0x3,
>     syscall_write0 = 0x4,
>     syscall_write = 0x5,
>     syscall_read = 0x6,
>     syscall_readc = 0x7,
>     syscall_iserror,
>     syscall_istty = 0x9,
>     syscall_seek = 0xA,
>     syscall_flen = 0xC,
>     syscall_tmpnam = 0xD,
>     syscall_remove = 0xE,
>     syscall_rename = 0xF,
>     syscall_clock = 0x10,
>     syscall_time = 0x11,
>     syscall_system = 0x12,
>     syscall_errno = 0x13,
>     syscall_get_cmdline = 0x15,
>     syscall_heapinfo = 0x16,
>     syscall_report_exception = 0x18
>   };
> 
> 
> If I understood well these number should match, but this is not
> happening... Am I compiling the wrong verstion of newlib?
> 
> Thanks,
> Cristiano.
> 
> ------------------------------------------------------------
> Cristiano Ligieri Pereira - http://www.ics.uci.edu/~cpereira
> 
> On Mon, 19 Nov 2001, Ben Elliston wrote:
> 
> > Hi.
> >
> > >>>>> "Cristiano" == Cristiano Ligieri Pereira <cpereira@ics.uci.edu> writes:
> >
> >   Cristiano> 0x8764: SWI     Fault (software, 0x69) pc=0x8764
> >
> >   Cristiano> and this is the piece of the original code where the error is happening:
> >
> >   Cristiano> 00008758 <_swiwrite>:
> >   Cristiano>     8758:       e1a0c00d        mov     ip, sp
> >   Cristiano>     875c:       e92dd800        stmdb   sp!, {fp, ip, lr, pc}
> >   Cristiano>     8760:       e24cb004        sub     fp, ip, #4      ; 0x4
> >   Cristiano>     8764:       ef000069        swi     0x00000069
> >   Cristiano>     8768:       e91ba800        ldmdb   fp, {fp, sp, pc}
> >
> >   Cristiano> SWI is software interrupt, right? Looks like I'm trying to execution
> >   Cristiano> function 0x69 that doesn't exist? is this right?
> >
> > I think you're on the right track.
> >
> >   Cristiano> Why would this happen? This is such a simple example. And one more
> >   Cristiano> question..., which configuration is being used (besides ARM processor)
> >   Cristiano> once I haven't specified any configuration file, let alone created some
> >   Cristiano> configuration.
> >
> > The default ARM system configuration in sid uses the ARM Angel monitor
> > and its associated syscall conventions.  My guess is that your build
> > of newlib is targetting some other ARM target where swi 69 is the
> > means by which characters are written.
> >
> > Ben
> >

  reply	other threads:[~2001-11-19 10:58 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-10-16 15:18 Cristiano Ligieri Pereira
2001-10-17 11:07 ` Cristiano Ligieri Pereira
2001-11-10  7:38   ` Ben Elliston
2001-11-10 11:10     ` Cristiano Ligieri Pereira
2001-11-10 16:07       ` Ben Elliston
2001-11-12 19:29         ` Cristiano Ligieri Pereira
2001-11-18 17:22           ` Cristiano Ligieri Pereira
2001-11-12 20:03         ` Cristiano Ligieri Pereira
2001-11-13 11:30           ` J. Johnston [this message]
2001-11-13 13:12             ` Cristiano Ligieri Pereira
2001-11-19 13:17               ` Cristiano Ligieri Pereira
2001-11-19 10:58             ` J. Johnston
2001-11-18 19:11           ` Cristiano Ligieri Pereira
2001-10-31 15:31 ` Ben Elliston

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3BF9561B.4384B76B@cygnus.com \
    --to=jjohnstn@cygnus.com \
    --cc=bje@redhat.com \
    --cc=cpereira@ics.uci.edu \
    --cc=sid@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).