summaryrefslogtreecommitdiffstats
path: root/c/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Towards automake XI patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:Joel Sherrill1999-03-19663-2077/+7877
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is the most scary of all proposals I've been mailing to you this week until now. It consists of 3 parts: 1. a patch 2. a perl script (acpolish) 3. a shell script wrapper to invoke the perl-script. The perl-script reads in each Makefile.in and modifies them ("polishes/beautifies" them :-). These modifications are not easy to describe: Basically, it hard-codes some automake Makefile-variables and rules into RTEMS autoconf-Makefile.ins (Note: autoconf vs. automake!!) and converts some settings/variables to configure scripts' requirements (Yes, plural). E.g. it adds the automake standard variables $top_builddir and $subdir, adds dependency rules for automatic re-generation of Makefiles from Makefile.in, adds support variables for relative paths to multiple configure scripts etc. The patch is a one-line patch to enable the support of the new features added by acpolish. The shell script is a wrapper which pokes around inside of the source tree for Makefile.ins and invokes acpolish on all autoconf-Makefile.ins. acpolish is designed to be able to run several times on the same Makefile.in and may once become a more general tool to convert RTEMS Makefile.in to automake. Therefore, I'd like to keep it inside of source tree. (e.g. as contrib/acpolish or c/update-tools/acpolish). However, it doesn't make sense to export it outside of RTEMS. To apply this: cd <source-tree> patch -p1 -E < <path-to-patch>/rtems-rc-19990318-1.diff tar xzvf <path-to>/rtems-rc-polish.tar.gz ./rtems-polish.sh ./autogen Note: The path contrib/acpolish is hard-coded into rtems-polish.sh, if you decide to put it in an alternative place, please modify rtems-polish.sh to reflect this change. Later: cvs rm make/rtems.cfg (It isn't used anymore) cvs add contrib cvs add contrib/acpolish cvs commit I've tested this intensively, but naturally I can't exclude bugs. Ralf. PS.: Most probably, this is the last "Towards automake" patch. The next one probably will be a real automake patch.
* Towards automake X patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:Joel Sherrill1999-03-1931-0/+155
| | | | | | | | | | | | | | | | | | | This one once again changes the scheme to preinstall bsp_specs. It moves generating PROJECT_ROOT/lib/bsp_specs to libbsp/<cpu>/<bsp>/wrapup/Makefile.in. I.e. it decentralizes generation of bsp_specs to a bsp-dependent directory, because preinstalling bsp_specs in a centralized Makefile like it has been done until now does not harmonize well with spliting the toplevel configure script in cpu and bsp-dependent configure scripts and automake. First apply the patch (rtems-rc-19990318-0.diff) below, then run the reorg-bsp_specs.sh script. IMO, this one is comparatively harmless and eases automake support significantly.
* Patch from Eric Norum <eric@skatter.usask.ca> that adds externalJoel Sherrill1999-03-198-60/+180
| | | | fcntl support and an external fcntl handler for sockets.
* Patch from Ian Lance Taylor <ian@airs.com>:Joel Sherrill1999-03-181-16/+27
| | | | | | Erik Ivanenko pointed out a problem in the ne2000.c driver I submitted: it did not work correctly with bootp. Here is a patch, based on a patch he sent me.
* Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>Joel Sherrill1999-03-172-6/+14
|
* Unlimited objects patch from Chris Johns <ccj@acm.org>. Email follows:Joel Sherrill1999-03-1718-149/+1816
| | | | | | | | | | | | | | | | | | | | | | | | | First, the unlimited patch. I have compiled the unlmited patch for the Linux posix BSP only and it seems to work cleanly. I would like a really major application run on this change before commiting as the changes are very core and significant. I am currently building all the tests to run. I have no targets suitable to test on at the moment. I have tested the patch for inline functions and macros. Turning macros on has found some core bugs. I have fixed these but have not run all the tests. Please review the patch for these changes. They are: 1) The conditional compilation for MP support broke the core messages code. You cannot embed a conditional macro in another macro. The Send and Urgent Send calls are macros. 2) User extensions handler initialisation now has two parameters. I have updated the macros to support the extra parameter. The patch also contains the gcc-target-default.cfg fix required to build the kernel. More of a by product than a fix for you.
* Temporarily took rtems_servers directory out of the build tree since thereJoel Sherrill1999-03-176-14/+10
| | | | are build issues with it.
* Patch from John S. Gwynne <jgwynne@mrcday.com> to correct minorJoel Sherrill1999-03-167-62/+152
| | | | | | | | | | | problems that prevented the 19990302 snapshot from running on the efi332. I'm happy to report that rtems-19990302 is running on the efi332 board. I have enclosed a few minor patches below to the efi332 bsp. All patches are within that library but one. make/custom/efi332.cfg has a patch to select the right CPU_CFLAGS (at one time -m68332 was a problem... -mcpu32 or -m68332 work fine now).
* Added ftpd server from Jake Janovetz <janovetz@tempest.ece.uiuc.edu>.Joel Sherrill1999-03-166-0/+2292
|
* Added rtems_servers directory.Joel Sherrill1999-03-162-2/+2
|
* Commented out test case that no long works since addition of POSIX timers.Joel Sherrill1999-03-161-5/+10
|
* Use proper include for libio.h.Joel Sherrill1999-03-1612-24/+12
|
* Interrupt handler installed as raw handler. Problem caught byJoel Sherrill1999-03-112-2/+2
| | | | | by Jiri Gaisler <jgais@ws.estec.esa.nl> when using this driver on a SPARC.
* Took generated files off list of source files.Joel Sherrill1999-03-082-2/+2
|
* Corrected bug where pointer to doubly linked blocks was being incorrectlyJoel Sherrill1999-03-083-6/+102
| | | | calculated.
* Added code to translate internal libio flags to POSIX style flags.Joel Sherrill1999-03-082-6/+40
|
* Added support for F_GETFL and F_SETFL.Joel Sherrill1999-03-082-4/+6
|
* Install remote debugger pieces.Joel Sherrill1999-03-081-4/+1
|
* Removed unused variable.Joel Sherrill1999-03-081-1/+0
|
* Patch from Ian Lance Taylor <ian@airs.com> to correct previous interruptJoel Sherrill1999-03-081-3/+2
| | | | patch.
* Added F_GETFL support so the fdopen() implementation in newlib 1.8.1Joel Sherrill1999-03-068-4/+86
| | | | | | | | would work. At the same time, the initial implementation of F_SETFL was added. A support routine was added to convert internal libio flags back to the POSIX style. Eventually the internal representation should be eliminated in the interest of simplicity and code reduction. This problem was reported by Jake Janovetz <janovetz@tempest.ece.uiuc.edu>.
* Wrong constant name was used for the DEBUG exception.Joel Sherrill1999-03-032-2/+2
|
* Generated files were accidentally included in the library.Joel Sherrill1999-03-032-2/+2
|
* Patch from Erik Ivanenko <erik.ivanenko@utoronto.ca> to correct a bugJoel Sherrill1999-03-031-19/+36
| | | | that shows up if the BSP uses memory near address 0.
* changed version to 19990302Joel Sherrill1999-03-021-1/+1
|
* Patch from Jay Monkman <jmonkman@frasca.com> to address minor issuesJoel Sherrill1999-03-024-202/+384
| | | | in the eth_comm BSP documentation.
* Updated Ethernet driver from Erik Ivanenko <erik.ivanenko@utoronto.ca>.Joel Sherrill1999-03-011-66/+112
| | | | | | | | | | | | | | | | | | | | | | | | | Comments follow: Please find attached, the updated network driver. I have verified that it is working as expected, by timestamping the error messages generated from the ISR. If you've taken a look inside, the network driver has a reset thread in addition to the RX and TX threads. It is possible to avoid the additional reset thread by allowing the TX driver to time out and then checking status bits set by the ISR. However, this approach demands that a transmission is necessary for the NIC to be reset. Due to Eric V's ISR handling, I suppose that the reset routine could be called from the "ISR" itself, due to the 8259 interrupt mode, and that the interrupt is acknowledged prior to running the "ISR". (Providing that no NIC interrupts are generated during reset -- I worry about re-entrancy. ) This would be a minor improvement, but you know, I don't want to make this driver my lifes work. ---------------------------------------------------------------------- ----------------------------------------------------------------------
* Patch from Eric Norum <eric@skatter.usask.ca> to eliminate externalJoel Sherrill1999-03-0147-611/+157
| | | | | IO handlers scheme that was implemented originally just to support sockets. The file system IO switch is more general and works fine.
* Part of the automake VI patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:Joel Sherrill1999-03-017-22/+193
| | | | | | | | | | | | | | | | > 5) rtems-rc-19990202-1.diff/reorg-install.sh > > reorg-install.sh fixes a Makefile variable name clash of RTEMS > configuration files and automake/autoconf standards. > Until now, RTEMS used $(INSTALL) for install-if-change. Automake and > autoconf use $(INSTALL) for a bsd-compatible install. As > install-if-change and bsd-install are not compatible, I renamed all > references to install-if-changed to $(INSTALL_CHANGED) and used > $(INSTALL) for bsd-install (==automake/autoconf standard). When > automake will be introduced install-if-change will probably be replaced > by $(INSTALL) and therefore will slowly vanish. For the moment, this > patch fixes a very nasty problem which prevents adding any automake file > until now (There are still more).
* Changed IMFS to use IMFS_NAME_MAX as the maximum length of a basenameJoel Sherrill1999-02-2423-71/+97
| | | | | | | rather then NAME_MAX. NAME_MAX is 255 and that lets IMFS chew up memory too fast. Perhaps in the future, the places in IMFS that put a maximum length name string on the stack and the jnode structure does not include a maximu length name string can be fixed so this is not a problem.
* Moved mpc860.h around to make things compile.Joel Sherrill1999-02-242-1/+1
|
* Patch from Charles Gauthier <Charles.Gauthier@iit.nrc.ca> to addressJoel Sherrill1999-02-243-11/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | FP issues on this target: The default variants of libc, libm and libgcc assume that a 68881 coprocessor is present. Without the FPSP, any floating point operation, including printf() with a "%f" format specifier, is likely to cause an unimplemented instruction exception. The FPSP works with the default variants of libc, libm and libgcc. It does not work in conjunction with the msoft-float variants. The paranoia test goes into an infinite loop at milestone 40. I am guessing that floor() is returning an incorrect value. The msoft-float variants of libc, libm and libgcc appear to do floating point I/O properly. They only failed in paranoia. Offhand, I can't think of why they would conflict with the FPSP, so I think that there is something wrong with the msoft-float code. It might be my installation. Given my experiences, I decided to install the FPSP in bsp_start(), and to link against the default variants of libc, libm and libgcc. This causes the executables to increase in size by about 60 KB. The README file and the mvme167.cfg specify how to remove the FPSP, and how to link against the msoft-float variants of the libraries. This is not what Eric Norum had done: on my host, his gen68360_040 port links RTEMS code with the msoft-float variants of libc and libm, and the default variant of libgcc. In this configuration, the output of printf() with "%f" is garbage on my target.
* Switch to using standard compile rule for assembly.Joel Sherrill1999-02-241-4/+2
|
* Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>. The following emailJoel Sherrill1999-02-241-8/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | is long but I hate to lose the information so I am including it here. > I am still fixing and recompiling but this is the issue that was not the > result of another patch. This is a fundamental build issue that I value > your opinion on. This is difficult issue (I.e. I have no destinct solution for it) Background: (gnu-) make's implicit rules apply CFLAGS, CPPFLAGS, CXXFLAGS, ASFLAGS and LDFLAGS (cf. make.info/Implicit Rules/Catalogue of Rules), only. In brief: CPPFLAGS .. passed to the c-preprocessor CFLAGS ... passed to the c-compiler CXXFLAGS ... equivalent to CFLAGS but passed to the c++ compiler (Attention: CFLAGS is not passed to the c++ compiler) ASFLAGS .. equivalent to CFLAGS, but passed to the assembler LDFLAGS .. equivalent to CFLAGS, but passed to the linker A bit oversimplifying, these make rules are as follows .c.o: $(CC) $(CPPFLAGS) $(CFLAGS) -c .cc.o: $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c .S.s: $(CPP) $(CPPFLAGS) .s.o: $(AS) $(ASFLAGS) My reading of the documentation (make.info) is that {AS|AR|CC|CXX|CPP}FLAGS are ment to be passed to the related tools directly, however examinating the rule set of gmake (gmake -p -f /dev/null") shows that many rules use $(CC) instead of the related tools (eg. linker rules) etc. I.e. these flags should not rely on being passed through cpp or gcc. With gcc being the common frontend for all of these tools of a gnu-toolchain the situation becomes difficult (Which option is passed to whom and which tool really uses it?), because these variable can also contain the toolchain's frontend (eg. AS=gcc, LD=gcc, CPP=gcc -E). For some commonly used options the situation is quite clear: * -g -> CFLAGS * -OX -> CFLAGS * -D -> CPPFLAGS * -A -> CPPFLAGS But where to add -m, -B, -specs, -qrtems_XXX ? * -B, -specs, -qrtems_XXX are gcc-frontend options * -m is a combinations of flags to go to different destinations, in many (all?) cases, the following is valid -m is expanded by gcc into a set of -D and -A options -m is interpreted by cc1 as a machine flag to generate a specific instruction set. -m is interpreted by gcc as an implicit linker search path for multilibs to set up calls to LD. >From my point of view this indicates we can either destingush between these different usages (= separately add -m to CFLAGS, LDFLAGS etc) or to add it to CPPFLAGS and use gcc (the frontend) instead of calling each tool directly (less error prone) -- I vote for CPPFLAGS, but I am not sure. ----------------- Now, where to add CPU_CFLAGS? AFAIS, in probably all cases CPU_CFLAGS contain -D -A, and -m options, only. * -D and -A are supposed to go to CPPFLAGS * -mXXX options can have multiple meanings (It can be gcc, collect2/ld and cc1/cc1plus option simultaneously) Here, I made a mistake - I destinguished between CPU_DEFINES to be added to CPPFLAGS and CPU_CFLAGS to be added to CFLAGS and CXXFLAGS (cf. gcc-target-default.cfg), generally assuming CPU_CFLAGS are CFLAGS. This breaks preprocessing *.S into *.i files because CPU_CFLAGS flags were not added to CPPFLAGS. Hence *all* *.S were compiled without taking -mXX-flags into account. The i960/cvme BSP was the only one which explicitly checked for a specific -m flag (-mca) and refused to compile without it -- all other CPUs/BSPs silently swallowed this. IMO, we can either 1) add CPU_CFLAGS and CPU_DEFINES to CPPFLAGS, thus silently convert CPU_CFLAGS's meaning into CPU_DEFINES (Alternative solution: rename CPU_CFLAGS to CPU_DEFINES and merge CPU_FLAGS with CPU_DEFINES). or 2) destinguish between CPU_DEFINES and CPU_CFLAGS. In this case we would need to check the contents of each CPU_CFLAGS in custom/*.cfg and move the some parts of the contents to CPU_DEFINES and keep other parts in CPU_CFLAGS (CFLAGS must contain options for the c/c++-compiler only!). Though Solution 2) is the clearer one, I implemented 1) which is the simplier one (the patch below). ATTENTION: This patch is small in size, but affects almost everything. ------------ Additional complications araise with linking: Some BSPs call LD and AS directly (esp. gcc-2.7 make-exe rules). If LD=gcc then LDFLAGS are supposed to be gcc-options, but if LD=ld then LDFLAGS is supposed to contain ld-options. An analog thought is valid for AS, but luckily enough ASFLAGS is not used of inside the whole source tree. Most RTEMS' custom/*.cfg use $(CC) $(CFLAGS) to link with gcc-2.8 make-exe rules. With the patch below (CPU_CFLAGS added to CPPFLAGS) this means CPU_CFLAGS will not be passed to the linker, which is incorrect for multilibbed CPU's. gmake's default rule set contains a variety of rules for linking, all ending up in calling $(CC) $(LDFLAGS) for linking at their very end. IMO, this means we should use something like LINK.o = $(CC) $(LDFLAGS) in gcc-target-default.cfg + modify all gcc-2.8 make-exe rules to use $(LINK.o) ....... + setup LDFLAGS according to the requirements of the above. I.e. we should use $(CC) for linking instead of calling the linker (LD) directly and set LDFLAGS = $(CPPFLAGS) $(CFLAGS) or similar.
* Removed dependency on bsp.h.Joel Sherrill1999-02-241-1/+3
|
* Corrected name of file.Joel Sherrill1999-02-241-1/+1
|
* Changed to include FPSP in library.Joel Sherrill1999-02-241-0/+2
|
* Changed from $(INSTALL) to $(INSTALL_CHANGE).Joel Sherrill1999-02-242-3/+3
|
* Corrected Makefile.in to account for placement of include files.Joel Sherrill1999-02-244-4/+4
|
* Corrected name of constant so this would compile.Joel Sherrill1999-02-241-1/+1
|
* Accidentally moved.Joel Sherrill1999-02-194-2101/+0
|
* Moved back up in tree.Joel Sherrill1999-02-194-0/+2101
|
* Accidentally moved erc32.hJoel Sherrill1999-02-191-521/+0
|
* Moved erc32.h back up in tree.Joel Sherrill1999-02-192-0/+1042
|
* Moved asm.h back up in tree.Joel Sherrill1999-02-198-0/+970
|
* Accidentally moved asm.hJoel Sherrill1999-02-198-1143/+0
|
* Moved to proper rtems/scoreJoel Sherrill1999-02-1923-738/+423
|
* Enhanced to support -qrtems_debug.Joel Sherrill1999-02-191-3/+9
|
* BSP for Vista Score603e added.Joel Sherrill1999-02-1944-0/+6467
|
* Patch from Ian Lance Taylor <ian@airs.com>:Joel Sherrill1999-02-181-6/+6
| | | | | | | | | Here is a patch which slightly improves the i386 interrupt handling macros. These macros were written to use both input and output parameters, which is not necessary. This patch changes them to use only an input or output parameter, as appropriate. It also changes the constraints to permit the interrupt level to be loaded directly in and out of memory, rather than always requiring a register.