OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [newlib/] [mpw-README] - Diff between revs 40 and 1765

Only display areas with differences | Details | Blame | View Log

Rev 40 Rev 1765
This is basic information about the Macintosh(tm) MPW(tm) port of the
This is basic information about the Macintosh(tm) MPW(tm) port of the
GNU tools.  The information below applies to both native and cross
GNU tools.  The information below applies to both native and cross
compilers.
compilers.
(Please note that there are two versions of this file; "mpw-README"
(Please note that there are two versions of this file; "mpw-README"
is the source form, and "Read Me for MPW" is the distribution form.
is the source form, and "Read Me for MPW" is the distribution form.
"Read Me for MPW" has 8-bit chars such as \Option-d embedded in it.)
"Read Me for MPW" has 8-bit chars such as \Option-d embedded in it.)
INSTALLING GNU TOOLS
INSTALLING GNU TOOLS
* System Requirements
* System Requirements
To use these tools, you will need a Mac with a 68020 or better or else
To use these tools, you will need a Mac with a 68020 or better or else
any PowerMac, System 7.1 or later, and MPW 3.3 or 3.4.  You will *not*
any PowerMac, System 7.1 or later, and MPW 3.3 or 3.4.  You will *not*
need any other MPW compiler unless you want to rebuild from sources,
need any other MPW compiler unless you want to rebuild from sources,
nor even any include files, unless you are building actual Mac
nor even any include files, unless you are building actual Mac
applications.  For PowerMac native you will need PPCLink, however;
applications.  For PowerMac native you will need PPCLink, however;
also the executables are PowerPC-only.
also the executables are PowerPC-only.
* Automated Installation
* Automated Installation
The simplest way to install GNU tools is to run the Install script.
The simplest way to install GNU tools is to run the Install script.
The script will copy things to where you want to keep them, will build
The script will copy things to where you want to keep them, will build
a UserStartup file with settings corresponding to where things were
a UserStartup file with settings corresponding to where things were
copied, and offer to put that UserStartup file in your MPW folder.
copied, and offer to put that UserStartup file in your MPW folder.
The Install script does not alter anything in the System Folder, and
The Install script does not alter anything in the System Folder, and
it does not take any action without confirmation.
it does not take any action without confirmation.
The Install script will be at the top level of the binary
The Install script will be at the top level of the binary
distribution, or at the top level of the object directory if
distribution, or at the top level of the object directory if
rebuilding from source.  (The sources include a file called
rebuilding from source.  (The sources include a file called
"mpw-install" at the top level, but it is the source to the Install
"mpw-install" at the top level, but it is the source to the Install
script and cannot be run directly.)
script and cannot be run directly.)
* Manual Installation
* Manual Installation
If you don't want to run the Install script, you can do installation
If you don't want to run the Install script, you can do installation
manually; this section describes the steps involved.
manually; this section describes the steps involved.
The GNU tools can go in any directory that is in your {Commands} list.
The GNU tools can go in any directory that is in your {Commands} list.
We generally put all the tools somewhere like {Boot}Cygnus:latest:bin,
We generally put all the tools somewhere like {Boot}Cygnus:latest:bin,
and then add to a UserStartup file:
and then add to a UserStartup file:
        set Commands "{Boot}Cygnus:latest:bin:,{Commands}"
        set Commands "{Boot}Cygnus:latest:bin:,{Commands}"
However, the cpp and cc1 programs of GCC are not normally stored here.
However, the cpp and cc1 programs of GCC are not normally stored here.
Instead, they will be in a "lib" directory that is alongside "bin",
Instead, they will be in a "lib" directory that is alongside "bin",
and organized by target and version underneath, with names like
and organized by target and version underneath, with names like
        :lib:gcc-lib::cygnus-:
        :lib:gcc-lib::cygnus-:
If you build and install everything yourself according to the build
If you build and install everything yourself according to the build
instructions below, then you will not have any problems.  However, you
instructions below, then you will not have any problems.  However, you
may discover that GCC seems unable to find the right cpp and cc1;
may discover that GCC seems unable to find the right cpp and cc1;
usually this will be because directory names have changed.  (Even
usually this will be because directory names have changed.  (Even
renaming your hard disk will make this happen.)  In such cases, you
renaming your hard disk will make this happen.)  In such cases, you
have several choices.  One is just to add this directory to
have several choices.  One is just to add this directory to
{Commands}, but then you will not be able to get any other cpp or cc1,
{Commands}, but then you will not be able to get any other cpp or cc1,
such as those used by a different target or version.  Another way is
such as those used by a different target or version.  Another way is
to rename your disk and directories to match the prefix used when the
to rename your disk and directories to match the prefix used when the
tools were compiled.  Finally, you can set the variable
tools were compiled.  Finally, you can set the variable
GCC_EXEC_PREFIX to point to the library directory:
GCC_EXEC_PREFIX to point to the library directory:
        set GCC_EXEC_PREFIX MyDisk:Stuff:lib:gcc-lib:
        set GCC_EXEC_PREFIX MyDisk:Stuff:lib:gcc-lib:
        export GCC_EXEC_PREFIX
        export GCC_EXEC_PREFIX
You may also want to edit MPW's HEXA 128 resource.  When GCC is built
You may also want to edit MPW's HEXA 128 resource.  When GCC is built
using a native GCC, it is compiled to use a special stack allocator
using a native GCC, it is compiled to use a special stack allocator
function alloca().  While this is very efficient, it means that GCC
function alloca().  While this is very efficient, it means that GCC
will need considerable stack space to run, especially when compiling
will need considerable stack space to run, especially when compiling
large programs with optimization turned on.  You give MPW more stack
large programs with optimization turned on.  You give MPW more stack
by editing the HEXA 128 resource of the MPW Shell.  A value of "0008
by editing the HEXA 128 resource of the MPW Shell.  A value of "0008
0000" gives 512K of stack size, which is usually sufficient.
0000" gives 512K of stack size, which is usually sufficient.
USING GNU TOOLS
USING GNU TOOLS
* Using Native PowerMac GCC
* Using Native PowerMac GCC
Using a native PowerMac GCC to produce MPW tools or MacOS applications
Using a native PowerMac GCC to produce MPW tools or MacOS applications
is more complicated than just "gC foo.c", although no more complicated
is more complicated than just "gC foo.c", although no more complicated
than with other Mac compilers.
than with other Mac compilers.
To build a native PowerMac MPW tool, use this sequence, where hello.c
To build a native PowerMac MPW tool, use this sequence, where hello.c
is the usual "hello world" program, and genericcfrg.r is the Rez file
is the usual "hello world" program, and genericcfrg.r is the Rez file
with the code fragment resource:
with the code fragment resource:
gC -I{CIncludes} -fno-builtin -Dpascal= -c -g hello.c
gC -I{CIncludes} -fno-builtin -Dpascal= -c -g hello.c
PPCLink hello.o -o hello \Option-d
PPCLink hello.o -o hello \Option-d
        "{PPCLibraries}"StdCRuntime.o \Option-d
        "{PPCLibraries}"StdCRuntime.o \Option-d
        "{SharedLibraries}"InterfaceLib \Option-d
        "{SharedLibraries}"InterfaceLib \Option-d
        "{SharedLibraries}"StdCLib \Option-d
        "{SharedLibraries}"StdCLib \Option-d
        "{PPCLibraries}"PPCToolLibs.o \Option-d
        "{PPCLibraries}"PPCToolLibs.o \Option-d
        "{PPCLibraries}"PPCCRuntime.o \Option-d
        "{PPCLibraries}"PPCCRuntime.o \Option-d
        "{GCCPPCLibraries}"libgcc.xcoff
        "{GCCPPCLibraries}"libgcc.xcoff
rez -d APPNAME='"'hello'"' GenericCFRG.r -o hello
rez -d APPNAME='"'hello'"' GenericCFRG.r -o hello
setfile -t 'MPST' -c 'MPS ' hello
setfile -t 'MPST' -c 'MPS ' hello
The same sequence works to build a MacOS application, but you set the file
The same sequence works to build a MacOS application, but you set the file
type to 'APPL' and don't link in PPCToolLibs.o.  For further details on
type to 'APPL' and don't link in PPCToolLibs.o.  For further details on
using MPW to build Mac applications, see the general MPW documentation.
using MPW to build Mac applications, see the general MPW documentation.
Recent versions of PPCLink have an option to generate the code
Recent versions of PPCLink have an option to generate the code
fragment resource and automatically set creator and file type;
fragment resource and automatically set creator and file type;
here is what GenericCFRG.r should look like if you have an older
here is what GenericCFRG.r should look like if you have an older
PPCLink or are using GNU ld:
PPCLink or are using GNU ld:
#include "CodeFragmentTypes.r"
#include "CodeFragmentTypes.r"
resource 'cfrg' (0) {
resource 'cfrg' (0) {
        {
        {
                kPowerPC,
                kPowerPC,
                kFullLib,
                kFullLib,
                kNoVersionNum,kNoVersionNum,
                kNoVersionNum,kNoVersionNum,
                0,0,
                0,0,
                kIsApp,kOnDiskFlat,kZeroOffset,kWholeFork,
                kIsApp,kOnDiskFlat,kZeroOffset,kWholeFork,
                APPNAME // must be defined on Rez command line with -d option
                APPNAME // must be defined on Rez command line with -d option
        }
        }
};
};
In general this port of GCC supports the same option syntax and
In general this port of GCC supports the same option syntax and
behavior as its Unix counterpart.  It also has similar compilation
behavior as its Unix counterpart.  It also has similar compilation
rules, so it will run the assembler on .s files and so forth.
rules, so it will run the assembler on .s files and so forth.
The GCC manual includes full information on the available options.
The GCC manual includes full information on the available options.
One option that may be especially useful is "-v", which shows you what
One option that may be especially useful is "-v", which shows you what
tools and options are being used; unlike most Mac C compilers, GCC
tools and options are being used; unlike most Mac C compilers, GCC
directs assembly and linking in addition to compilation.
directs assembly and linking in addition to compilation.
MPW GCC does feature two extensions to the option syntax; '-d macro=name'
MPW GCC does feature two extensions to the option syntax; '-d macro=name'
works just as '-Dmacro=name' does in Unix, and '-i directory' works the
works just as '-Dmacro=name' does in Unix, and '-i directory' works the
same as '-Idirectory'.
same as '-Idirectory'.
MPW GCC supports the usual Pascal-style strings and alignment pragmas.
MPW GCC supports the usual Pascal-style strings and alignment pragmas.
To find standard include files you can set the variable GCCIncludes:
To find standard include files you can set the variable GCCIncludes:
        set GCCIncludes MyDisk:MyIncludes:
        set GCCIncludes MyDisk:MyIncludes:
        export GCCIncludes
        export GCCIncludes
GCCIncludes is similar to MPW's CIncludes or CW's MWCIncludes.  In
GCCIncludes is similar to MPW's CIncludes or CW's MWCIncludes.  In
order to use MPW's usual include files, just say:
order to use MPW's usual include files, just say:
        set GCCIncludes "{CIncludes}"
        set GCCIncludes "{CIncludes}"
        export GCCIncludes
        export GCCIncludes
* Using GCC as a Cross-Compiler
* Using GCC as a Cross-Compiler
If you have a cross-compiler, and you have all of the correct
If you have a cross-compiler, and you have all of the correct
target-side crt0 and libraries available, then to compile and link a
target-side crt0 and libraries available, then to compile and link a
file "foo.c", you can say just
file "foo.c", you can say just
        gC foo.c
        gC foo.c
The output file will be an MPW binary file named "a.out"; the format
The output file will be an MPW binary file named "a.out"; the format
of the contents will depend on which target is in use, so for instance
of the contents will depend on which target is in use, so for instance
a MIPS-targeting GCC will produce ECOFF or ELF executables.
a MIPS-targeting GCC will produce ECOFF or ELF executables.
Note that using MPW include files with a cross-compiler is somewhat
Note that using MPW include files with a cross-compiler is somewhat
dangerous.
dangerous.
* Using the Assembler and Friends
* Using the Assembler and Friends
The assembler ("as") and linker ("ld") are faithful ports of their
The assembler ("as") and linker ("ld") are faithful ports of their
Unix counterparts.  Similarly, the binutils "ar", "cplusfilt", "nm",
Unix counterparts.  Similarly, the binutils "ar", "cplusfilt", "nm",
"objcopy", "objdump", "ranlib", "size", "strings", and "strip" are all
"objcopy", "objdump", "ranlib", "size", "strings", and "strip" are all
like they are under Unix.  (Note that "cplusfilt" is usually called
like they are under Unix.  (Note that "cplusfilt" is usually called
"c++filt" under Unix.)
"c++filt" under Unix.)
* Using GDB
* Using GDB
There are two flavors of GDB.  "gdb" is an MPW tool that works very
There are two flavors of GDB.  "gdb" is an MPW tool that works very
much like it does in Unix; put a command into the MPW worksheet and
much like it does in Unix; put a command into the MPW worksheet and
type the  key to send it to GDB.  While "gdb" is running, you
type the  key to send it to GDB.  While "gdb" is running, you
cannot do anything else in MPW, although you can switch to other
cannot do anything else in MPW, although you can switch to other
Mac applications and use them.
Mac applications and use them.
"SiowGDB" is also a Mac application, but it is GDB using the SIOW
"SiowGDB" is also a Mac application, but it is GDB using the SIOW
package to provide console emulation.  Commands are exactly as for the
package to provide console emulation.  Commands are exactly as for the
MPW tool, but since this is its own application, you can switch
MPW tool, but since this is its own application, you can switch
between it and MPW.
between it and MPW.
BUILDING GNU TOOLS
BUILDING GNU TOOLS
This port of the GNU tools uses a configure script similar to
This port of the GNU tools uses a configure script similar to
that used for GNU tools under Unix, but rewritten for MPW.  As with
that used for GNU tools under Unix, but rewritten for MPW.  As with
Unix configuration, there is an "object" directory that may be
Unix configuration, there is an "object" directory that may be
different from the "source" directory.  In the example commands below,
different from the "source" directory.  In the example commands below,
we will assume that we are currently in the object directory, and that
we will assume that we are currently in the object directory, and that
the source directory is "{Boot}Cygnus:src:".
the source directory is "{Boot}Cygnus:src:".
* Requirements for Building
* Requirements for Building
In addition to the sources, you will need a set of tools that the
In addition to the sources, you will need a set of tools that the
configure and build scripts assume to be available.  These tools
configure and build scripts assume to be available.  These tools
(and their versions, if relevant) are as follows:
(and their versions, if relevant) are as follows:
        byacc tool
        byacc tool
        flex (2.3.7) tool (and Flex.skel file)
        flex (2.3.7) tool (and Flex.skel file)
        forward-include script
        forward-include script
        MoveIfChange script
        MoveIfChange script
        mpw-touch script
        mpw-touch script
        mpw-true script
        mpw-true script
        NewFolderRecursive script
        NewFolderRecursive script
        null-command script
        null-command script
        open-brace script
        open-brace script
        sed (1.13) tool
        sed (1.13) tool
        tr-7to8 script
        tr-7to8 script
        true script
        true script
The scripts are in the sources, under utils:mpw:. You must arrange to
The scripts are in the sources, under utils:mpw:. You must arrange to
get the other tools yourself (they are readily available from the
get the other tools yourself (they are readily available from the
"usual" net sites, and are also on many CDROMS).  In addition, there
"usual" net sites, and are also on many CDROMS).  In addition, there
will usually be a set of these available at ftp.cygnus.com, in pub/mac.
will usually be a set of these available at ftp.cygnus.com, in pub/mac.
You may put the build tools in your usual Tools or Scripts
You may put the build tools in your usual Tools or Scripts
directories, or keep them in a separate directories.  We prefer to
directories, or keep them in a separate directories.  We prefer to
make a directory called "buildtools" and we put this in one of our
make a directory called "buildtools" and we put this in one of our
UserStartup files:
UserStartup files:
        set Commands "{Boot}Cygnus:buildtools:,{Commands}"
        set Commands "{Boot}Cygnus:buildtools:,{Commands}"
Flex uses an environment variable FLEX_SKELETON to locate its skeleton
Flex uses an environment variable FLEX_SKELETON to locate its skeleton
file, so you need to do something like this, preferably in a UserStartup:
file, so you need to do something like this, preferably in a UserStartup:
        Set FLEX_SKELETON "{Boot}"Cygnus:buildtools:Flex.skel
        Set FLEX_SKELETON "{Boot}"Cygnus:buildtools:Flex.skel
        Export FLEX_SKELETON
        Export FLEX_SKELETON
* Configuring
* Configuring
Before you can build anything, you must configure.  You do this by
Before you can build anything, you must configure.  You do this by
creating an directory where object files will be stored, setdirectory
creating an directory where object files will be stored, setdirectory
to that directory and do a configure command:
to that directory and do a configure command:
        {Boot}Cygnus:src:mpw-configure --target  --cc  --srcdir {Boot}Cygnus:src: --prefix 
        {Boot}Cygnus:src:mpw-configure --target  --cc  --srcdir {Boot}Cygnus:src: --prefix 
If the source directory is not in your {Commands} list, then you must
If the source directory is not in your {Commands} list, then you must
supply a full pathname to mpw-configure, since mpw-configure invokes
supply a full pathname to mpw-configure, since mpw-configure invokes
itself after switching into each subdirectory.  Using a relative
itself after switching into each subdirectory.  Using a relative
pathname, even something like ':mpw-configure', will therefore not work.
pathname, even something like ':mpw-configure', will therefore not work.
 must be a known target.  Valid ones include "m68k-apple-macos",
 must be a known target.  Valid ones include "m68k-apple-macos",
"powerpc-apple-macos", "i386-unknown-go32", "mips-idt-ecoff", and
"powerpc-apple-macos", "i386-unknown-go32", "mips-idt-ecoff", and
"sh-hitachi-hms".  Not all target types are accepted for all of the
"sh-hitachi-hms".  Not all target types are accepted for all of the
tools yet.
tools yet.
 must be the name of the compiler to use.  It defaults to "mpwc".
 must be the name of the compiler to use.  It defaults to "mpwc".
        (m68k)
        (m68k)
        mpwc    MPW C
        mpwc    MPW C
        sc68k   Symantec C
        sc68k   Symantec C
        mwc68k  Metrowerks C (Codewarrior)
        mwc68k  Metrowerks C (Codewarrior)
        gcc68k  GCC
        gcc68k  GCC
        (powerpc)
        (powerpc)
        ppcc    PPCC
        ppcc    PPCC
        mrc     Macintosh on RisC (Mister C, aka(?) Frankenstein)
        mrc     Macintosh on RisC (Mister C, aka(?) Frankenstein)
        scppc   Symantec C
        scppc   Symantec C
        mwcppc  Metrowerks C (Codewarrior)
        mwcppc  Metrowerks C (Codewarrior)
        gccppc  GCC
        gccppc  GCC
Not all compilers will compile all tools equally well!  For m68k Macs,
Not all compilers will compile all tools equally well!  For m68k Macs,
MPW C has the best record so far (it has problems, but they can be
MPW C has the best record so far (it has problems, but they can be
worked around), while for PowerMacs, CodeWarrior is the only compiler
worked around), while for PowerMacs, CodeWarrior is the only compiler
that has successfully compiled everything into running code.
that has successfully compiled everything into running code.
 is the path that "gcc" will prepend when looking for tools
 is the path that "gcc" will prepend when looking for tools
to execute.  GCC_EXEC_PREFIX overrides this value, so you need not
to execute.  GCC_EXEC_PREFIX overrides this value, so you need not
include it if you plan to use GCC_EXEC_PREFIX.
include it if you plan to use GCC_EXEC_PREFIX.
As an example, here is the configure line that you could use to build
As an example, here is the configure line that you could use to build
native PowerMac GCC:
native PowerMac GCC:
"{Boot}"Cygnus:src:mpw-configure --cc mwcppc --target powerpc-apple-macos --srcdir "{Boot}"Cygnus:src: --prefix "{Boot}"GNUTools:
"{Boot}"Cygnus:src:mpw-configure --cc mwcppc --target powerpc-apple-macos --srcdir "{Boot}"Cygnus:src: --prefix "{Boot}"GNUTools:
* Building
* Building
If you use CodeWarrior, you *must* first set MWCIncludes to
If you use CodeWarrior, you *must* first set MWCIncludes to
{CIncludes}.  This is because you will be building MPW tools, and
{CIncludes}.  This is because you will be building MPW tools, and
their standard I/O works by making references to data that is part of
their standard I/O works by making references to data that is part of
the MPW Shell, which means that the code must be compiled and linked
the MPW Shell, which means that the code must be compiled and linked
with macros that refer to that data, and those macros are in
with macros that refer to that data, and those macros are in
{CIncludes}, not the default {MWCIncludes}.  Without this change, you
{CIncludes}, not the default {MWCIncludes}.  Without this change, you
will encounter problems compiling libiberty/mpw.c, but tweaking that
will encounter problems compiling libiberty/mpw.c, but tweaking that
file only masks the real problem, and does not fix it.
file only masks the real problem, and does not fix it.
The command
The command
        mpw-build
        mpw-build
will build everything. Building will take over an hour on a Quadra 800
will build everything. Building will take over an hour on a Quadra 800
or PowerMac 8100/110, longer if the sources are on a shared volume.
or PowerMac 8100/110, longer if the sources are on a shared volume.
You may see some warnings; these are mostly likely benign, typically
You may see some warnings; these are mostly likely benign, typically
disagreements about declarations of library and system functions.
disagreements about declarations of library and system functions.
* Installing
* Installing
To install the just-built tools, use the command
To install the just-built tools, use the command
        mpw-build install
        mpw-build install
This part of the installation procedure just copies files to the
This part of the installation procedure just copies files to the
location specified at configure time by , and, in some cases,
location specified at configure time by , and, in some cases,
renames them from temporary internal names to their usual names. This
renames them from temporary internal names to their usual names. This
install process is *not* the same as what the Install script does;
install process is *not* the same as what the Install script does;
Install can copy tools from the installation location chosen at
Install can copy tools from the installation location chosen at
configuration time to a user-chosen place, and sets up a UserStartup
configuration time to a user-chosen place, and sets up a UserStartup
file.  Note that while the Install script is optional, the install
file.  Note that while the Install script is optional, the install
build action performs some tasks would be very hard to replicate
build action performs some tasks would be very hard to replicate
manually, so you should always do it before using the tools.
manually, so you should always do it before using the tools.
* Known Problems With Using Various Compilers to Build
* Known Problems With Using Various Compilers to Build
Most versions of MPW C have problems with compiling GNU software.
Most versions of MPW C have problems with compiling GNU software.
MPW C 3.2.x has preprocessing bugs that render it incapable of
MPW C 3.2.x has preprocessing bugs that render it incapable of
compiling the BFD library, so it can't be used at all for building BFD.
compiling the BFD library, so it can't be used at all for building BFD.
MPW C 3.3, 3.3.1, and 3.3.2 will spontaneously claim to have found
MPW C 3.3, 3.3.1, and 3.3.2 will spontaneously claim to have found
errors in the source code, but in fact the code is perfectly fine.  If
errors in the source code, but in fact the code is perfectly fine.  If
this happens, just set the working directory back to the top-level
this happens, just set the working directory back to the top-level
objdir (where the configure command above was performed), and type
objdir (where the configure command above was performed), and type
"mpw-build all" again.  If it goes on through the supposed error, then
"mpw-build all" again.  If it goes on through the supposed error, then
you got one of the spurious errors.  A full build may require a number
you got one of the spurious errors.  A full build may require a number
of these restarts.
of these restarts.
MPW C 3.3.3 seems to work OK, at least with the aid of a number of
MPW C 3.3.3 seems to work OK, at least with the aid of a number of
workarounds that are in the sources (look for #ifdef MPW_C).
workarounds that are in the sources (look for #ifdef MPW_C).
Versions of MPW Make earlier than 4.0d2 have exhibited bizarre behavior,
Versions of MPW Make earlier than 4.0d2 have exhibited bizarre behavior,
failure to substitute variables and the like.
failure to substitute variables and the like.
Metrowerks CW6 PPC linker (MWLinkPPC) seems to do bad things with memory
Metrowerks CW6 PPC linker (MWLinkPPC) seems to do bad things with memory
if the "Modern Memory Manager" is turned on (in the Memory control panel),
if the "Modern Memory Manager" is turned on (in the Memory control panel),
but works OK if it is turned off.
but works OK if it is turned off.
Metrowerks CW6 loses bigtime compiling opcodes:ppc-opc.c, which has
Metrowerks CW6 loses bigtime compiling opcodes:ppc-opc.c, which has
some deeply nested macros.  (CW7 is OK.)  There is a way to patch the
some deeply nested macros.  (CW7 is OK.)  There is a way to patch the
file, by substituting constant values.  If you need to do this,
file, by substituting constant values.  If you need to do this,
contact shebs@cygnus.com for details.
contact shebs@cygnus.com for details.
 is missing from {CIncludes} in the MPW version that comes
 is missing from {CIncludes} in the MPW version that comes
with CW7.  You can just copy the one in CW7's {MWCIncludes}.
with CW7.  You can just copy the one in CW7's {MWCIncludes}.
CW8 and later have changes to headers and such that will require changes
CW8 and later have changes to headers and such that will require changes
to the source in order to be able to use them to rebuild.
to the source in order to be able to use them to rebuild.
KNOWN BUGS
KNOWN BUGS
The declarations for memcpy and memcmp in some versions of header files
The declarations for memcpy and memcmp in some versions of header files
may conflict with GCC's builtin definition.  Either use -fno-builtin
may conflict with GCC's builtin definition.  Either use -fno-builtin
or ignore the warnings.
or ignore the warnings.
This is not a bug, but - watch out for cr/nl translation!  For instance,
This is not a bug, but - watch out for cr/nl translation!  For instance,
if config/mpw-mh-mpw is not properly translated because it has been
if config/mpw-mh-mpw is not properly translated because it has been
copied or updated separately, then everything will almost build, but
copied or updated separately, then everything will almost build, but
you will get puzzling error messages from make or the compiler.
you will get puzzling error messages from make or the compiler.
'/' or ' ' embedded in any device, directory, or file name may or may
'/' or ' ' embedded in any device, directory, or file name may or may
not work.
not work.
objcopy -O srec foo.o makes random output filenames.
objcopy -O srec foo.o makes random output filenames.
Mac-x-mips requires -mgas but Unix hosts don't.
Mac-x-mips requires -mgas but Unix hosts don't.
GDB will frequently require a '/' on the front of a device name in order
GDB will frequently require a '/' on the front of a device name in order
to recognize it as an absolute rather than a relative pathname.
to recognize it as an absolute rather than a relative pathname.
GDB doesn't seem to use the printer port correctly, although it tries.
GDB doesn't seem to use the printer port correctly, although it tries.
The cursor doesn't always spin as much as it should.  To get elaborate
The cursor doesn't always spin as much as it should.  To get elaborate
statistics and warnings about spin rates, add this to UserStartup:
statistics and warnings about spin rates, add this to UserStartup:
        set MEASURE_SPIN all
        set MEASURE_SPIN all
        export MEASURE_SPIN
        export MEASURE_SPIN
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.