Commit Graph

649 Commits

Author SHA1 Message Date
Joel Sherrill
7549e147ae Fixed obsolete reference to BSDINSTALL. 1998-08-19 20:02:10 +00:00
Joel Sherrill
06fa582130 Patches from Ralf Corsepius <corsepiu@faw.uni-ulm.de> and myself to
make solaris target buildable.

    > 1.  The ipc check fails since solaris does not define union semun.
    > The unix port code actually defines this type itself on solaris.  Doing
    > the same thing lets it get configured.  Then...

    > 2.  It looks like BSDINSTALL is not defined properly.

    BSDINSTALL is defined in make/host.cfg.in as
    BSDINSTALL=@INSTALL@

    @INSTALL@ is generated by autoconf's standard macro AC_PROG_INSTALL, which
    is widely used in almost any autoconf/automake configured package. In case
    there is really something wrong with it, then it must be considered a bug
    in autoconf.

    I can see a doubious fragment in AC_PROG_INSTALL, which is used when no
    appropriate bsd-install is found.

Finally Ralf saw a problem with the find on solaris which I also saw and
fixed.
1998-08-19 12:56:20 +00:00
Joel Sherrill
f2226f4422 Added 68060 definition from Chris Johns. 1998-08-19 12:41:22 +00:00
Joel Sherrill
43abd4d525 Fixed preinstall stanza so the prebuild works. 1998-08-13 22:03:14 +00:00
Joel Sherrill
26e5cd406a Patch from Chris Johns <ccj@acm.org>. Comments follow:
Here is a small patch which allows the m68060 to be used. I have not
    tested the FP switching stuff which we know is broken. This is taken
    against the libchip snapshot but should merge without problems. If you
    have any problems please let me know.

    There are other smaller issues such as superscalar enable and cache
    control which I have not addressed yet. They are different to all other
    m68k processors. These can wait IMO.
1998-08-13 14:23:37 +00:00
Joel Sherrill
18c2320c6e changed version to 980808 1998-08-08 16:51:16 +00:00
Joel Sherrill
7e2187f4ad changed version to 9800808 1998-08-08 16:26:35 +00:00
Joel Sherrill
bd8c8b2a85 Patch from Eric Valette <valette@crf.canon.fr> which brings the i386ex BSP
inline with the new IRQ structure.
1998-08-05 16:51:39 +00:00
Joel Sherrill
ab0df696d0 Automatic CPU type detection code from Eric Valette <valette@crf.canon.fr>.
Enabled on the pc386.
1998-08-05 15:15:46 +00:00
Joel Sherrill
4d11a92f3e Redid Makefiles to properly do a preinstall. There was remnants of the
old way of setting th cpu family and model string names.
1998-08-05 15:11:33 +00:00
Joel Sherrill
5ef4fae650 Merged patch from David Fiddes <D.J.Fiddes@hw.ac.uk> to add ColdFire
specific register macros and correct code in rtems.s.
1998-08-01 14:40:51 +00:00
Joel Sherrill
41d0743964 Patch from Eric Valette <valette@crf.canon.fr>:
Now that Joel told me how to compile outside the tree,
    I have found a few more bugs. Here is a small patch
    to fix them.
1998-07-30 18:06:51 +00:00
Joel Sherrill
bd7c547d20 Closed window thanks to patch from Eric Norum. 1998-07-28 16:49:36 +00:00
Joel Sherrill
bf21172de8 changed version to 980724 1998-07-24 18:30:50 +00:00
Joel Sherrill
1501809c67 changed version to 980723 1998-07-23 22:13:46 +00:00
Joel Sherrill
67a2288991 Patch from Eric VALETTE <valette@crf.canon.fr>:
Here is a enhanced version of my previous patch. This patch enables
    to potentially share the new interrupt management code for all Intel targets
    (pc386, go32 and force386) bsp.

    Note :  this patch is complete only for pc386. It still needs to
            be completed for go32 and force386. I carrefully checked
            that anything needed is in for force386 (only some function
            name changes for IDT manipulation and GDT segment
            manipulation). But anyway I will not be able to test any
            of theses targets...
1998-07-23 22:02:34 +00:00
Joel Sherrill
73452854c0 Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:
Here is a pure sh-rtems bug-fix patch.

  The defines to enable the network to host conversion macros in
  netinet/in.h were missing in sh/cpu.h
1998-07-23 20:04:55 +00:00
Joel Sherrill
4555bc1eb5 Initialized tty->refcount to 0. When (for whatever reason) malloc()
returned a buffer which was not zero-filled, the reference count
was not correct.  When the application exitted, the "lastClose"
handler was not being called to flush the output.  This problem
had manifested itself on a variety of platforms.

The function rtems_termios_dequeue_characters() incorrectly incremented
the buffer pointers when it was invoked and there were no characters
in the ring buffer.  This problem had also manifested itself on a
variety of platforms.  The symptom was a strange repeating of the
data in the transmitter buffer when the transmitter serial device
was supposed to go idle.
1998-07-17 22:34:54 +00:00
Joel Sherrill
f95d2b53f2 Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>. Comments:
* Added support for bsd "install" ($(BSDINSTALL)) to host.cfg.in, i.e.
    the standard "install" program that most packages (including automake)
    use. In Makefiles outside of rtems, "install" normally is referenced by
    $(INSTALL), but rtems already uses $(INSTALL) for install-if-change,
    hence I used $(BSDINSTALL) instead to keep up backward compatibility.

    * Removed references to @GREP@ etc. from host.cfg.in, as configure.in
    doesn't check for them (Minor cleanup).

    * Added installation flags INST*FLAGS to host.cfg.in, which should
    replace -m XXXX flags for installation calls.

    *Changes to gcc.cfg to enable it to build host programs from multiple
    sources files.
    Should not disturb existing sources, but neccessary.

    * There was a not-so-minor bug in the configuration files: "make
    install" and "make debug_install" don't work in all subdirectories!! I
    tried to fix this by adding "install" to MTARGETS in main.cfg, which
    seems to solve most of the problems. But there still seem to be rare (?)
    cases where "make debug_install" still seems to have problems.

    * Changes to many host related tool-Makefiles to demonstrate the
    abilities of INST*FLAGS, BSDINSTALL and the new rules in gcc.cfg.
    ..of cause ... but BSDINSTALL is THE standard method to install files
    in most program packages besides rtems. This part of the patch fixes
    some minor protection setting problems, but doesn't support
    TARGET_VARIANTS

    NOTE:
    I hope you will like the BSDINSTALL, INST*FLAGS stuff. It is a step to
    get rid of "install-if-change" and to rely on a more standard
    installation procedure. If you don't like BSDINSTALL, removing it from
    the patch isn't  difficult-  just grep for BSDINSTALL and replace
    BSDINSTALL with INSTALL or MKDIR.


    FINALLY:
    I still have another patch pending (well, not a complete patch yet, it's
    a partial patch to demonstrate the principle), which adds automatic
    rebuilding of files generated by autoconf/configure. At the moment I
    don't dare to submit it, because integrating this patch would require to
    modify all Makefile.ins because we'd need to add a new "include " line
    to each Makefile.in.
1998-07-17 15:49:12 +00:00
Joel Sherrill
fa21a8439f New files from Ralf Corsepius <corsepiu@faw.uni-ulm.de>. His comments:
* c/src/exec/score/tools/sh - NEW DIRECTORY - contains shgen
    Most of it should be self-explanatory. I am a little bit concerned about
    host-dependent features (getopt, floating point libraries). This
    shouldn't disturb much now, as this tool should be compileable on all
    gnu-based hosts and is only applicable for the sh. But in case somebody
    complains, we may need to add autoconf checks or even restructurize
    parts of rtems (IMO, rtems needs to be restructurized - remember the
    "turning rtems upside down" issue).
1998-07-17 15:17:29 +00:00
Joel Sherrill
6e65840670 Patch from Dario Alcocer <alcocer@connectnet.com>. His comments:
Haven't had a chance to do an extensive shake-out of 980710, but it
  builds just fine on FreeBSD 2.2.5 (after termios is fixed using the
  attached patch), and the tests run fine.  FYI: FreeBSD doesn't support
  System V IPC out of the box, but one only needs to add three options
  to the kernel build configuration file, recompile the kernel, and
  you're ready.
1998-07-17 13:05:03 +00:00
Joel Sherrill
3a447c3b36 changed version to 980710 1998-07-10 19:05:20 +00:00
Joel Sherrill
0d1184ffec changed version to 980707 1998-07-07 19:05:55 +00:00
Joel Sherrill
d859b5fb22 changed version to 9800707 1998-07-07 19:00:26 +00:00
Joel Sherrill
270d58fe4c New file to satisfy readdir() family. 1998-07-06 19:00:33 +00:00
Joel Sherrill
dd6dddcf1e Fixed typo. 1998-07-01 21:33:11 +00:00
Joel Sherrill
98100d275f Monstrous patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>. I have
made no attempt to divide the comments up and place them with just
the appropriate files.  Here is an excerpt from Ralf's email:

Changes including comments on changes I made after cycling through
all the targets:

  * Added ranlib support. Now all targets use "ranlib" instead of "ar -s"
    to build an index for a library. If ranlib isn't detected during
    configuration, check if ar -s is working and try "ar -s" instead of

  * Removed $(XXX_FOR_TARGET) from make/target.cfg.in, use $(XXX) instead now.

  * gcc-target-default.cfg: LINK_XXXX-defines reworked to solve the -l
    problem under posix (cf gcc-target-default.cfg)

  * rtems-glom replaced by Makefile-rules inside of the wrapup/Makefile.in
    that has been using rtems-glom until now.

  * Removed CCC and friends in gcc-target-default.cfg, as they have been
    breaking CXX support.

  * Removed CONFIG.$(TARGET_ARCH).CC lines from several custom/*.cfg
    files, because this is now set in custom/default.cfg.

  * Added aclocal/ar-s.m4, check whether "ar -s" is working

  * Added aclocal/cygwin.m4 and aclocal/exeext.m4.

  * Reworked aclocal/canonicalize-tools.m4: Added ar -s check; fixes for
    problems when  XXX_FOR_TARGET is given via environment variables (didn't
    work for gcc until now), adding cygwin check, improved autoconf-cache
    handling.

  * Removed -l from make rule dependencies. LINK_LIBS is now allowed to
    contain -L and -l. LINK_OBJS and LINK_FILES must not contain -L or -l.
    gcc28 make-exe rules now link using $(LINK_OBJS) $(LINK_LIBS) => Almost
    all custom/*.cfg are modified. This is very likely to break something
    because of typos or having missed to edit a file.

  Open problems, known bugs, things I didn't do:

  * custom/p4000.cfg seems to be out of date and requires to be reviewed.

    (JRS NOTE: It is subordinate p4650 and p4600 -- both of which build ok
               after minor changes.)

  * custom/psim.cfg needs to be reviewed, I added some changes to it, I am
    insecure about.

    (JRS NOTE: psim had a minor problem endif/endef swapped but runs fine.)

  * rtems-glom.in can now be removed.

  * gcc*.cfg files "make depend" rules don't honor language specific flags
    (e.g CXXFLAGS is ignored for *.cc) - Nothing to worry about now, but may
    cause problems for hosts/targets not using gcc or rtems-add-ons that use
    external packages.

  * AFAIS, the no_bsp BSP can't be build anymore, i.e. configure refused
    to configure for it whatever I tried.

  * The toplevel and toplevel+1 README files are quite out-dated

  * cygwin.m4 isn't of much use for rtems. In most cases (cf.
    aclocal/*.m4) it is worked around by directly using $host_os. I think
    I'll remove it soon after the next snapshot

  * Before release the cygwin patch needs to be tested under cygwin. I may
    have broken/missed something (esp. the sed-pattern to convert \\ into /
    may be broken).

  * You should try to build/run the posix-BSP under solaris - I don't
    expect problems, but I am not 100% sure, esp. with regard to ranlib/ar -s.

  * You should consider to convert all make/compilers/*.cfg files into
    make/compilers/*.cfg.in files and let autoconf generate the *.cfg. This
    may help getting rid of some if/then/else statements and help
    hard-coding some defines into those files in future and shouldn't
    disturb now.

  * Not having installed libc.a/libm.a on a host may still break building
    rtems, esp. when using -disable-gcc28 as the gcc27-configuration scheme
    directly accesses libc.a and libm.a. The problem should not appear when
    using gcc28 because it references libc/libm only through -lc and -lm
    which may be static or dynamic (I didn't test this).

  * shgen is not yet included (I didn't yet have enough time to integrate it).

  * I know about a few more configure-probs (esp. cross-checking
    --enable-* flags).
     + warn/refuse to configure when --enable-libcdir and
       --enable-gcc28 are given.
     + force --enable-libcdir when --disable-gcc28 is given

  * Replaced KSHELL with @KSH@ in some shell scripts generated by configure.in.

  * Added a dependency to aclocal/*.m4 in the toplevel Makefile => configure
    and aclocal.m4 will now be rebuild when any aclocal/*.m4 file is changed

  * Some changes to aclocal/gcc-pipe.m4 and aclocal/gcc-specs.m4

  * Replaced i[[3456]]86-unknown-freebsd2.[[12]] with i[[3456]]86-*freebsd2.*
    in configure.in, as I suppose there might exist a variety of valid vendors
    (2nd field of the name-tripple)

  * Disabled override MAKEFLAGS in toplevel Makefile.in - Potential
    side-effects are not really clear to me.

  * In mvme162.cfg, $(LINK_LIBS) is missing in the CC line in gcc28's make-exe
    rule (yet another one I missed to edit). Just append $(LINK_LIBS) to
    the "CC" line, like I hopefully did to ALL other custom/*.cfg files.

  * the problem with mvme162lx.cfg is a follow-up problem of the
    mvme162.cfg-bug.

  * mvme162/console and idp/console had variables named Buffer which
    conflicted with similarly named variables in some tests.
1998-06-27 17:09:47 +00:00
Joel Sherrill
b22b1294a6 Coldfire support patch from David Fiddes <D.J.Fiddes@hw.ac.uk>. 1998-06-25 16:26:43 +00:00
Joel Sherrill
924e17ac81 Patch from Robin Kirkham <Robin.Kirkham@mlb.dmt.csiro.au> to distinguish
between CPU32 and CPU32+ cores.  Commentary follows:

    Unfortunately c/src/exec/score/cpu/m68k/m68k.h incorrectly defines
    M68K_HAS_MISALIGNED for the plain old CPU32 (it is correct for the CPU32+).
    As a consequence, the recently-relocated m68k memcpy() may still attempt
    misaligned memory accesses.

    I suggest that until such time as egcs/gcc differentiates these cores
    that we invent a new preprocessor symbol, RTEMS__mcpu32p__ for this
    purpose, on the assumption that egcs may one day grow a -mcpu32+ option
    which will define a __mcpu32p__ symbol (whether this option would also
    define __mcpu32__ is yet to be resolved).

    BSPs that have a CPU32+ (like gen68360) would for the time being define
    RTEMS__mcpu32p__ using -D. The symbol is `RTEMS__mcpu32p__' because
    symbols of the form __xxx__ should only be defined by the compiler
    itself.

    Note that the patch tests for RTEMS__mcpu32p__ *before* __mcpu32__, since
    __mcpu32__ is still defined for the CPU32+. It does not change the
    gen68360 BSP.

    An aside:
    Note that in egcs-1.0.3a, the option -m68332 is identical to -mcpu32,
    except it defines __mc68332__ as well as __mcpu32__. This is only
    for the sake of compatibility. The story with -m68302 is similar;
    it defines __mc68302__ and __mc68000__. In my opinion these options
    are depreciated and ought to be avoided in RTEMS.
1998-06-25 16:10:45 +00:00
Joel Sherrill
803de4133b Suggestion from Robin Kirkham <Robin.Kirkham@mlb.dmt.csiro.au> to improve
clarity.
1998-06-24 17:58:56 +00:00
Joel Sherrill
ce17a7245c changed version to 980618 1998-06-18 19:14:36 +00:00
Joel Sherrill
cb1b853d0b All task delete API level services were incorrectly assuming that the
task to be deleted was created via the same API (i.e. were of the object
class created by this API).  For example, a POSIX thread calling
the rtems_task_delete(SELF) directive would incorrectly update the RTEMS
object local pointer table.

Jennifer discovered this when moving tests implemented in C using the
Classic RTEMS API into a tree of Ada tests.  The Ada tests were implicitly
using POSIX services.  This lead to some unexpected behavior.
1998-06-18 19:01:57 +00:00
Joel Sherrill
7e4c3d8b1d Modified _Objects_Is_class_valid() to correctly report that 0 was
not a valid object class.  This was discovered while looking for
a bug reported by Jennifer.
1998-06-18 18:58:42 +00:00
Joel Sherrill
9a6994b490 Added freebsd support from Dario Alcocer <alcocer@connectnet.com>. 1998-06-18 15:22:35 +00:00
Joel Sherrill
ce691c51fd Corrected so it returns the correct date. Previously was getting the number
of seconds since 1988 from RTEMS and not adding in the 1970-1988 correction
factor.  Plus removed checks for data/time set since POSIX does not permit
this call to fail.  GNAT 3.12 depends on this.
1998-06-18 15:14:48 +00:00
Joel Sherrill
ecc9737f40 Added a public interface to the chain handler. 1998-06-18 15:12:27 +00:00
Joel Sherrill
773890639c Added optimized version of memcpy.c to this directory since RTEMS makes
important distinctions between CPU models which are not made by gcc.
These distinctions help give us a more optimized memcpy().  This is important
for message queues and KA9Q.
1998-06-12 21:12:12 +00:00
Joel Sherrill
cec1095101 changed version to 980604 1998-06-04 15:15:30 +00:00
Joel Sherrill
937a6f3cef Added CPU_ISR_PASSES_FRAME_POINTER so some ports could pass just the
vector number to user ISR's and other ports could pass both the vector
number and a pointer to the ISF.
1998-06-03 19:00:17 +00:00
Joel Sherrill
75d0b0b83a Corrected macros for assembly language program sections. 1998-06-03 18:49:38 +00:00
Joel Sherrill
2e4b3d03da changed version to 980527 1998-05-27 22:10:10 +00:00
Joel Sherrill
71d07b9ddf Corrected interrupt stack allocation. 1998-05-27 19:18:02 +00:00
Joel Sherrill
448ba47a4c Fixed spacing 1998-05-27 12:26:07 +00:00
Joel Sherrill
139e6efe3c Fix from Jiri Gaisler <jgais@ws.estec.esa.nl> for a problem in which
external interrupt priorities were not being honored.  Here is some
of his original report:

    using rtems/erc32, I have a problem with interrupt priority when
    interrupts occure simultaneously. Erc32 has an interrupt force
    register where interrupts can be generated. If more than one
    interrupt is generated, the interrupt handlers are scheduled in
    the wrong order, i.e. with the lowest priority first.

    I have attched a program that generates three interrupts, 0x11, 0x12
    and 0x13. Interrupt 0x13 should be handled first, but is actually
    handled last. Below is the output from sis:

        sis> go
        resuming at 0x02000000
        RAM size: 4096 K, ROM size: 2048 K
        Watchdog disabled
        Waitstates = RAM read: 0, RAM write: 0, ROM read: 0, ROM write: 0
        Power-down mode enabled
        infinite UART baudrate
        External interrupt received with vector 0x11
        External interrupt received with vector 0x12
        External interrupt received with vector 0x13

    I have verified that sis generates the interrupts in the correct
    order, i.e. 0x13 first, then 0x12 and then 0x11. So the problem
    seems to be in the rtems interrupt handler. Do you use the PIL field
    in the %psr register to mask lower priority interrupts or are all
    external interrupts considered to have the same priority ..?

Here is a description of the fix:

  it turned out that lower priority interrupts were not at all masked
  off during interrupt handling. I made the following fix to cpu_asm.s:
       ... fix is in the code ...
  There might be a simpler way of doing this, but this works...
1998-05-27 12:21:32 +00:00
Joel Sherrill
119bced0fd Added tcdrain(), cfgetospeed(0, cfsetospeed(), cfgetispeed(), and
cfsetispeed().
1998-05-22 14:51:11 +00:00
Joel Sherrill
e2476ed4d1 Added tcdrain(), cfgetospeed(), cfsetospeed(), cfgetispeed(), and cfsetispeed(). 1998-05-22 14:49:49 +00:00
Joel Sherrill
7e93af11ce changed version to 980521 1998-05-21 19:11:24 +00:00
Joel Sherrill
d7588efc2f Per suggestion from Ralf Corsepius made all macros solaris2 -- not solaris
or solaris2.
1998-05-21 16:39:51 +00:00
Joel Sherrill
27dccaec15 Patch to add return status to rtems_termios_enqueue_raw_characters from
Eric Norum per request from Geoffroy Montel:

   > The rtems_termios_enqueue_raw_characters function type is void.
   > The problem is that I can't return an error message if the input
   > buffer is full.
   > Could we add a return value?

   Sure, but what would you do with the overflow indication?  POSIX says,
   ``when the input limit is reached, the saved characters are thrown away
   without notice''.

   Anyhow, the change is so small I've done it and enclosed the patch.
1998-05-20 17:09:12 +00:00
Joel Sherrill
603d706083 Added tcdrain() from Eric Norum 1998-05-20 17:00:22 +00:00