Doc changes and other updates.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@2606 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Adam Fedor 1997-10-31 20:24:01 +00:00
parent 4879e1c247
commit 6473920814
15 changed files with 237 additions and 443 deletions

View file

@ -1,3 +1,25 @@
Fri Oct 31 15:16:46 1997 Adam Fedor <fedor@doc.com>
* NSBundle.README: Removed obsolete file.
* README.threads: Likewise.
* RELEASE-NOTES: Likewise.
* GNUmakefile: Remove obsolete files from DIST. Make Tools the
second build target.
* Tools/GNUmakefile: Include tool.make and make dread, etc as
tools.
* Tools/Makefile.preamble: Add uninstalled includes and libraries
from ../src.
* Tools/dremove.m: Add errno.h.
* doc/GNUmakefile: Remove unneeded top-level text files.
* doc/announce.texi: Update.
* doc/install.texi: Likewise.
* doc/news.texi: Likewise.
* doc/readme.texi: Likewise.
* doc/todo.texi: Likewise.
Fri Oct 31 10:26:16 1997 Adam Fedor <fedor@doc.com>
* GNUmakefile: Renamed from Makefile.

View file

@ -50,8 +50,8 @@ version.texi \
NSZone.texi
TEXT_FILES = \
TODO INSTALL NEWS CODING-STANDARDS README ANNOUNCE ADVERTISEMENT \
GNUstep-FAQ
TODO INSTALL NEWS CODING-STANDARDS README ANNOUNCE
INFO_FILES = gnustep-base.info
PS_FILES = gnustep-base.dvi
HTML_FILES =

View file

@ -81,8 +81,6 @@ after-clean::
srcdir=.
all:: text
text: $(TEXT_FILES)
info: version.texi $(INFO_FILES)
ps: $(PS_FILES)

View file

@ -10,8 +10,8 @@ available.
@include base-desc.texi
There is more information available at the GNUstep Base Library homepage
at @samp{http://www.cs.rochester.edu/u/mccallum/gnustep-base}.
There is more information available at the GNUstep homepage
at @samp{http://www.gnustep.org}.
@ignore
So that developers of non-free, commercial programs can use the library,
@ -24,9 +24,6 @@ For more details, see the @samp{README} file that comes with the
distribution.
@end ignore
@c @section What's new in this release?
@include news.texi
@section Where can you get it? How can you compile it?
@ifset GNUSTEP_BASE_FTP_MACHINE
@ -39,10 +36,6 @@ The libgnustep-base-@value{GNUSTEP_BASE_VERSION}.tar.gz distribution file has no
been made available by anonymous ftp.
@end ifclear
More information about the library, including a list of machines on
which it has been successfully compiled and used, can be found at
@samp{http://www.cs.rochester.edu/u/mccallum/libgnustep-base}.
The library requires gcc @value{GNUSTEP_BASE_GCC_VERSION} or higher.
Significant sections of the library do not work with the NeXT runtime,
so we recommend using gcc instead of NeXT's cc. See the @samp{INSTALL}
@ -56,7 +49,7 @@ For info about FTP via email, send email to
with line one @samp{help} and line two @samp{quit}.
The most recent (not necessarily tested) snapshots of the library will
be placed in @samp{ftp://alpha.gnu.ai.mit.edu/gnu}.
be placed in @samp{ftp://alpha.gnu.org/gnu/gnustep}.
@display
Happy Hacking!

View file

@ -13,245 +13,154 @@ as you preserve this copyright notice and permission notice.
@chapter Installing @samp{libgnustep-base}
@end ifset
Most of the information below is also included in the general GNUstep
installation instruction GNUstep-HOWTO located at the same ftp sites
as this library, notable @file{ftp://ftp.gnustep.org/pub/gnustep}.
To compile and install @samp{libgnustep-base}:
@enumerate
@item
If you are running GNU/Linux, first install pthreads. A copy that is
known to work with GNU Objective C can be found at
@file{ftp://ftp.ocbi.com/pub/GNUstep/pthreads.tar.gz}
I ignored the installation instructions, and instead did the following:
Get and compile GNU make, if you don't already have GNU make.
@example
cd pthreads-0.9.2
tar -cf - lib | (cd /usr/local ; tar -xvf -)
tar -cf - include | (cd /usr/local ; tar -xvf -)
mkdirs /usr/local/src/linux_threads/kits/pthreads-0.9.2/lib/pthreads
cd !$ ; ln -s /usr/local/lib/libpthreads.so.1 .
cd /usr/local/lib ; ln -s libpthreads.so.1 libpthreads.so
cd /usr/src
tar fvxz make-XXX.tar.gz
cd make-XXX
./configure
make
su root
make install
@end example
(And on my system, I also had to comment out the code between
@code{#ifndef _TIMESPEC_} and the following @code{#endif} in
@file{/usr/local/include/pthreads/typedefs.h}.)
@item
Then install the GNU Objective C runtime patch (both gcc-2.7.2-objc.diff
and gcc-2.7.2.1-objc.diff are included with this gnustep-base release),
possibly like this:
Decide where you want the GNUstep files to go, and use this as
an argument to configure in the makefile package. If you don't choose
a location, the default is /usr/GNUstep. The example below shows how
to configure the packages for installation in /usr/local/GNUstep.
@example
cd gcc-2.7.2.1
patch -p1 < ../gstep-base*/gcc-2.7.2.1-objc.diff
rm -f objc/list.h
tar fvxz gstep-make-XXXXXX.tar.gz
cd gstep-make-XXXXXX
./configure --prefix=/usr/local/GNUstep
su root
make install
@end example
When I did this, patch exited with code 5, but the only rejects were in
documentation files, not source files.
After this you should add the shell script GNUstep.sh in the makefile
package to you initialization file (such as .profile). For instance:
@example
. /usr/local/GNUstep/Makefiles/GNUstep.sh
@end example
in your .profile file will work. It defines environment variables that
are needed to find GNUstep files and executables. Users of csh neet
to change the GNUstep.sh script so it will work with csh. Read the
README for more info.
GNUstep packages will automatically install in this directory structure. You
can install other packages (such as gcc) in the same structure if you specify
the GNUstep system root as the prefix when you configure the package.
@example
./configure --prefix=$GNUSTEP_SYSTEM_ROOT
@end example
@item
Make and install gcc, possibly like this:
For Linux/GNU systems on Intel x86 processors, the PCThreads library is
known to work with GNUstep. PCThreads version 1.1.0 is an enhanced version
of PCThread 1.0.0 with better support for GNUstep.
@example
./configure --prefix=/usr/local
make OBJC_THREAD_FILE=thr-pthreads
make OBJC_THREAD_FILE=thr-pthreads install
cd /usr/src
tar fvxz pcthreads-1.1.0.tar.gz
cd pcthreads-1.1.0
./configure
make
su root
make install
@end example
If you are not sure that threads are available on your system, and you
don't need to use threads, you can substitute @samp{thr-single} for
@samp{thr-pthreads}.
If you are using the GNUstep makefile package and wish PCThreads to be
installed with the GNUstep directory structure; then you should specify the
GNUstep system root as the prefix when you configure the package.
@example
./configure --prefix=$GNUSTEP_SYSTEM_ROOT
@end example
@item
The following commands assume that all the aforementioned files have been
copied to the /usr/src directory on your machine.
@example
1. Uncompress gcc:
cd /usr/src
tar fvxz gcc-2.7.2.1.tar.gz
2. Apply the Objective-C runtime patch. Go inside the GCC directory and issue
the command (Make sure you have the correct patch for the version of gcc):
cd gcc-2.7.2.1
cat gcc-2.7.2.1-objc.diff | patch -p1
3. Configure the gcc compiler's makefile for your machine:
./configure
If you are using the GNUstep makefile package and wish gcc to be
installed with the GNUstep directory structure; then you should specify the
GNUstep system root as the prefix when you configure the package.
./configure --prefix=$GNUSTEP_SYSTEM_ROOT
4. Compile gcc
4.1 With a single-threaded Objective-C runtime:
make OBJC_THREAD_FILE=thr-single
or
4.2 With thread support appropriate for your system
make
or
4.3 With PCThreads support (Linux/GNU)
make OBJC_THREAD_FILE=thr-pthreads
5. Wait
If you have a Pentium Pro, go drink a coffee.
If you have a fast Pentium, count from 0 to 100 in your head.
If you have a slow Pentium, go eat a bagel.
If you have a 486, go watch the news.
If you have a 386, come back tomorrow.
6. Install gcc
su root
make install
7. Delete the gcc directory if you're low on disk space
rm -rf /usr/src/gcc-2.7.2.1
@end example
@item
Then configure and make libgnustep-base:
@example
./configure --prefix=/usr/local
./configure
make
make install
@end example
Alternatively, if you are running GNU/Linux and have an older version of
libc, then the Objective C runtime will not work unless you pass
@samp{-lieee} to the linker. If you use the pthreads library that will
also have to be linked in. You can do that like this:
@example
LIBS="-lieee -lpthreads" ./configure --prefix=/usr/local
make
make install
@end example
If you don't have @samp{libieee.a} on your system, @file{configure} will
say
@example
configure: error: installation or configuration problem:
C compiler cannot create executables.
@end example
If you are running on a NeXT machine, @samp{gcc} probably configured
itself to use the NeXT Objective C runtime by default. Currently
GNUstep only supports the GNU runtime. To make @samp{gcc} use the GNU
runtime, set @samp{CFLAGS} before you runtime configure. For example:
@example
CFLAGS=-fgnu-runtime ./configure
@end example
If your system supports dynamically loaded shared libraries, you can
request the building and installation of a @samp{.so} version of the
library by passing @samp{--enable-shared} to @samp{configure}. If in
doubt, do not include this option.
If you have trouble with the Makefile, it may be that our makefiles use
features that your @code{make} does not support; use GNU make.
@item
Then install libgnustep-base:
@example
make install
@end example
If you set any environment variables when running @samp{make} to build
libgnustep-base, you should set them again here; for example:
@example
CFLAGS=-fgnu-runtime ./configure
@end example
@end enumerate
Here are general instructions for @file{configure}, that explain
@file{configure}'s options.
@enumerate
@item
Configure the package for your system. In the directory that this file
is in, type @samp{./configure}. If you're using @samp{csh} on an old
version of System V, you might need to type @samp{sh configure} instead
to prevent @samp{csh} from trying to execute @samp{configure} itself.
The @samp{configure} shell script attempts to guess correct values for
various system-dependent variables used during compilation, and creates
the Makefile(s) (one in each subdirectory of the source directory). In
some packages it creates a C header file containing system-dependent
definitions. It also creates a file @samp{config.status} that you can
run in the future to recreate the current configuration.
Running @samp{configure} takes less than a minute or two. While it is
running, it prints some messages that tell what it is doing. If you
don't want to see the messages, run @samp{configure} with its standard
output redirected to @samp{/dev/null}; for example:
@smallexample
./configure >/dev/null
@end smallexample
To compile the package in a different directory from the one containing
the source code, you must use a version of make that supports the VPATH
variable, such as GNU make. @samp{cd} to the directory where you want
the object files and executables to go and run @samp{configure}.
@samp{configure} automatically checks for the source code in the
directory that @samp{configure} is in and in @samp{..}. If for some
reason @samp{configure} is not in the source code directory that you are
configuring, then it will report that it can't find the source code. In
that case, run @samp{configure} with the option @samp{--srcdir=DIR},
where DIR is the directory that contains the source code.
By default, @samp{make install} will install the package's files in
/usr/local/bin, /usr/local/lib, /usr/local/man, etc. You can specify
an installation prefix other than /usr/local by giving @samp{configure} the
option @samp{--prefix=PATH}. Alternately, you can do so by giving a value
for the @samp{prefix} variable when you run @samp{make}, e.g.,
@smallexample
make prefix=/usr/gnu
@end smallexample
You can specify separate installation prefixes for architecture-specific
files and architecture-independent files. If you give @samp{configure}
the option @samp{--exec_prefix=PATH} or set the @samp{make} variable
@samp{exec_prefix} to PATH, the package will use PATH as the prefix for
installing programs and libraries. Data files and documentation will
still use the regular prefix. Normally, all files are installed using
the regular prefix.
You can tell @samp{configure} to figure out the configuration for your
system, and record it in @samp{config.status}, without actually
configuring the package (creating @samp{Makefile}s and perhaps a
configuration header file). To do this, give @samp{configure} the
@samp{--no-create} option. Later, you can run @samp{./config.status} to
actually configure the package. This option is useful mainly in
@samp{Makefile} rules for updating @samp{config.status} and
@samp{Makefile}. You can also give @samp{config.status} the
@samp{--recheck} option, which makes it re-run @samp{configure} with the
same arguments you used before. This is useful if you change
@samp{configure}.
@samp{configure} ignores any other arguments that you give it.
If your system requires unusual options for compilation or linking that
@samp{configure} doesn't know about, you can give @samp{configure}
initial values for some variables by setting them in the environment.
In Bourne-compatible shells, you can do that on the command line like
this:
@smallexample
CC='gcc -traditional' DEFS=-D_POSIX_SOURCE ./configure
@end smallexample
The @samp{make} variables that you might want to override with environment
variables when running @samp{configure} are:
(For these variables, any value given in the environment overrides the
value that @samp{configure} would choose:)
@table @samp
@item CC
C compiler program. Default is @samp{cc}, or @samp{gcc} if @samp{gcc}
is in your PATH.
@item INSTALL
Program to use to install files.
Default is @samp{install} if you have it, @samp{install.sh} otherwise.
@end table
(For these variables, any value given in the environment is added to
the value that @samp{configure} chooses:)
@table @samp
@item DEFS
Configuration options, in the form @samp{-Dfoo -Dbar ...}
@item LIBS
Libraries to link with, in the form @samp{-lfoo -lbar ...}
@end table
If you need to do unusual things to compile the package, we encourage
you to figure out how @samp{configure} could check whether to do them, and
mail diffs or instructions to the address given in the @samp{README} so we
can include them in the next release.
@item
Type @samp{make} to compile the package. If you want, you can override
the @samp{make} variables @samp{CFLAGS} and @samp{LDFLAGS} like this:
@smallexample
make CFLAGS=-O2 LDFLAGS=-s
@end smallexample
You will get some warnings from @samp{#warning} lines I've added to the
code. Ignore them.
You may get some warnings like @samp{stdobjects.m:0: warning:
`_OBJC_SELECTOR_TABLE' defined but not used}. Ignore them.
They are bogus warnings due to a bug in cc1obj.
You may get some warnings like @samp{ar: filename BinaryTreeEltNode.o
truncated to BinaryTreeEltNo}. Ignore them.
@item
If you want to compile the self-tests, cd to @samp{checks} and type
@samp{make}. If you want to compile the examples, cd to @samp{examples}
@ -273,3 +182,11 @@ need it if you want to regenerate @samp{configure} using a newer version
of @samp{autoconf}.
@end enumerate
Notes:
If you are running GNU/Linux and have an older version of
libc, then the Objective C runtime will not work unless you pass
@samp{-lieee} to the linker.

View file

@ -6,6 +6,39 @@ The currently released version of the library is
@samp{@value{GNUSTEP_BASE_VERSION}}.
@end ifset
@section Noteworthy changes since version @samp{0.2.1}
@itemize @bullet
@item Use the new GNUstep Makefile Package to compile the library, tools
checks, and everything else.
@item NSData implemented as a class cluster including a class to
allocate shared VM memory.
@item Big NSTimeZone improvements, as well as inclusion of time zone files,
from Yoo C. Chung <wacko@@laplace.snu.ac.kr>.
@item Major improvements to distributed objects and many related clases
from Richard Frith-Macdonald <richard@@brainstorm.co.uk>. Also added a
nameserver.
@item Major rewrite of NSString, include Unicode strings from Stevo
Crvenkovski <stevoc@@lotus.mpt.com.mk>
@item A rewrite of the NSBundle class from Adam Fedor <fedor@@gnu.org>.
@item Addition of a C-language style stream package.
@item Better support for threads and locking.
@item Support for running on Windows from Scott Christley
<scottc@@net-community.com>
@item Many, many, many, many bug fixes and new classes.
@end itemize
@section Noteworthy changes since version @samp{0.1.19}
@itemize @bullet

View file

@ -9,9 +9,6 @@ Here is some introductory info to get you started:
@section Initial reading
The file @file{doc/GNUstep-FAQ} contains a brief overview of the
library. It also tells you where to get the most recent version.
The file @samp{NEWS} has the library's feature history.
The file @samp{INSTALL} gives instructions for installing the library.
@ -103,72 +100,12 @@ separately.
@samp{NotificationDispatcher}
@end ignore
@item The distributed object support classes are @samp{Connection},
@samp{Proxy}, @samp{ConnectedCoder}, @samp{Port} and @samp{TcpPort}.
@item The distributed object support classes are @samp{NSConnection},
@samp{NSProxy}, @samp{ConnectedCoder}, @samp{Port} and @samp{TcpPort}.
This version of the distributed objects only works with sockets. A Mach
port back-end should be on the way.
See @file{doc/GNUstep-FAQ} for a detailed description of the cabilities
and non-capabilities of GNU Distributed Objects.
To begin using distributed objects, you only need to know about
@samp{Connection} class. You can see the full (documented!) interface
in @samp{src/include/Connection.h}. The long list of methods may be a
little daunting, but actually, a lot can be done with just a few key
methods:
@smallexample
- (Connection*) newRegisteringAtName: name
withRootObject: anObj;
For registering your server object with the network.
- (void) runConnection;
For running the connection object returned by the above
method, so that your server can start handling requests from
clients.
- (Proxy*) rootProxyAtName: name
onHost: host;
For connecting to a remote server. You get a proxy object for
the remote server object, which, for messaging purposes, you
can treat as if it were local.
@end smallexample
@section Where else to look
@subsection Examples
A few simple example programs can be found in @samp{examples}.
Read and enjoy. To compile them (after having compiled the library),
type @samp{make} in the @samp{examples} directory.
@itemize @bullet
@item @samp{dictionary.m} demonstrates the basic features of the
Dictionary object.
@item @samp{stdio-stream.m} creates a StdioStream object that points to
a file, writes to the file, then reads from the file.
@item @samp{textcoding.m} shows how you can archive an object to a file
in a human-readable text format, and then read it back in again. This
format is handy for editing archived objects with a text editor, and is
great when you want to modify/create an archive using a scripting
language like @samp{perl} or @samp{awk}.
@item @samp{first-server.m} and @samp{first-client.m} show the
distributed object version of ``Hello, world''.
@item @samp{second-server.m} and @samp{second-client.m} contain a more
complex demonstration of distributed objects, with multiple clients,
connection delegates, and invalidation notification.
@item @samp{tcpport-server.m} and @samp{tcpport-client.m} show a simple
use of TcpPort objects.
@end itemize
@subsection Test Programs
@section Test Programs
Some of the programs I've used to test the library are in
@samp{./checks}. Many of them are pretty messy, (desperately trying to
@ -198,5 +135,8 @@ framework, I'd be happy to include them.
@example
Happy hacking!
Andrew McCallum
mccallum@@gnu.ai.mit.edu
mccallum@@gnu.org
Adam Fedor
fedor@@gnu.org
@end example

View file

@ -4,11 +4,13 @@
@include version.texi
@end ifset
This TODO list is out of date.
@section Projects Looking for Volunteers
If you think you can do one of these projects, please let me know. Your
help is greatly appreciated. Send email to
@samp{mccallum@@gnu.ai.mit.edu}.
@samp{mccallum@@gnu.org}.
@itemize @bullet
@ -16,13 +18,6 @@ help is greatly appreciated. Send email to
Richard Frith-Macdonald <richard@@brainstorm.co.uk>, who has volunteered
to coordinate these efforts.)
@item Write a proper name server for Port's. Currently we're just
hashing the name to a socket port number---we could get unwanted hash
collisions. This will also allow us to name a SocketPort after it's
been created. (Contact Richard Frith-Macdonald
<richard@@brainstorm.co.uk>, who has volunteered to coordinate these
efforts.)
@ignore
@item Add some features to the compiler:
@enumerate
@ -38,19 +33,9 @@ argument to @@encode() and get a type string like the selector types.
@end enumerate
@end ignore
@item Improve the code to deal with `%@@' in printf-style format strings
for systems that do not have the GNU C library. See src/NSString.m for
the current implementation, which does not handle formatting modifiers.
(Those with the GNU C Library can just use
@samp{register_printf_function}.)
@item Implement efficient SmallInt and SmallFloat classes in the same
sort of way that Smalltalk does. Talk to me. mccallum@@gnu.ai.mit.edu.
@item See
http://www.cs.rochester.edu/u/mccallum/libobjects/volunteers.html for
a list of the claimed and unclaimed GNUStep Foundation classes.
@end itemize
@ -58,11 +43,6 @@ a list of the claimed and unclaimed GNUStep Foundation classes.
@itemize @bullet
@item Overhaul the string classes.
@item Make sets/dictionaries hashtables/maps copy their keys, not retain
them. This is specified in the OpenStep standard.
@item Separate core and non-core code in NSDictionary, NSSet, etc, the
same way I did for NSArray.
@ -114,13 +94,6 @@ version for many of the classes.
@item Possibly change implementation of @code{-(int)compare:anObject}
for Collection. How should non-Indexed collections be ordered?
@item
Finish HashTable.m. Implement freeKeys:values: (What is this supposed
to do anyway?). Handle archiving of atom string, "%", keys.
@item
Finish Time.m. Many methods are not yet implemented.
@item
Many implementations could be made more efficient. The library hasn't
been efficiency tuned very much. Overridding more methods in certain

View file

@ -38,18 +38,16 @@ DIST_FILES = \
config/config.nested.c config/config.nextcc.h config/config.nextrt.m \
config/config.vsprintf.c \
README.ULTRIX README.ucblib \
STATUS RELEASE-NOTES \
COPYING COPYING.LIB ChangeLog \
STATUS COPYING COPYING.LIB ChangeLog \
configure Version \
config.guess mkinstalldirs install-sh config.sub \
NSBundle.README \
gcc-2.7.2-objc.diff \
gcc-2.7.2.1-objc.diff
#
# The list of subproject directories
#
SUBPROJECTS = Tools src doc checks examples NSCharacterSets NSTimeZones admin
SUBPROJECTS = src Tools doc checks examples NSCharacterSets NSTimeZones admin
-include Makefile.preamble

View file

@ -1,34 +0,0 @@
NSBundle is a class that provides a simple front-end to the dynamic
linking capabilities of a computer system. It allows one to more
easily locate and load data and object files at run-time. Object files
can include both simple functions as well as additional classes that
the program may use.
NSBundle locates files within bundles. A bundle is essentially a
directory that contains text files, data files, and object files (which
contain C functions and Objective-C classes). Usually the bundle
directory has the extension "bundle" and the main object file that
resides in the directory has the same name as the bundle directory,
without any extension.
The NSBundle class provided with GNUstep Base Library is meant to run
on a variety of systems. However, some set-up is required to use it.
Currently it has been tested on only a few systems that support
dynamic linking -- Linux, SunOS, Solaris. It should work on HP, but I
haven't been able to get it to work yet.
NSBundle problems:
NSBundle does not necessarily work on all systems. You cannot link in
bundles on systems that do not support dynamic linking, although you
can use the other facilities of NSBundle, such as locating data files
within a bundle.
If NSBundle does not work on systems that do support dynamic linking,
it is likely that the Makefile package has not been configured to make
bundles on your system and/or that the GNUstep Base Library did not
link in the correct header file to use dynamic linking. Diagnosing and
fixing these problems is not trivial and requires some knowledge of
dynamic linking, object file formats and the Objective-C
runtime. Contact Adam Fedor <fedor@gnu.org> for help.

View file

@ -1,47 +0,0 @@
Return-Path: mccallum@ux2.sp.cs.cmu.edu
Received: from tera.jprc.com (tera.jprc.com [207.86.147.221])
by sandbox.jprc.com (8.8.5/8.8.5) with SMTP id MAA25547
for <mccallum@sandbox.jprc.com>; Tue, 20 May 1997 12:59:00 -0400
Resent-Message-Id: <199705201659.MAA25547@sandbox.jprc.com>
Received: from complex.jprc.com (complex.jprc.com [207.86.147.34]) by tera.jprc.com (NTMail 3.02.10) with ESMTP id na043797 for <mccallum@sandbox.jprc.com>; Tue, 20 May 1997 13:06:12 -0400
Received: from UX2.SP.cs.cmu.edu (UX2.SP.cs.cmu.edu [128.2.198.102]) by complex.jprc.com (NTMail 3.02.10) with ESMTP id ea039706 for <mccallum@jprc.com>; Tue, 20 May 1997 12:56:58 -0400
Received: from RI.CMU.EDU by ux2.sp.cs.cmu.edu id ab19713; 20 May 97 12:57 EDT
Received: from churchy.gnu.ai.mit.edu by RI.CMU.EDU id aa11471;
20 May 97 12:57:03 EDT
Received: from pluto by churchy.gnu.ai.mit.edu (8.8.5/8.6.12GNU) with ESMTP id MAA16968 for <gnustep-dev@gnu.ai.mit.edu>; Tue, 20 May 1997 12:56:28 -0400 (EDT)
Received: by pluto
id m0wTsFr-0000ViC
(Debian Smail-3.2 1996-Jul-4 #2); Wed, 21 May 1997 01:59:19 +0900 (KST)
Sender: "Yoo C. Chung" <wacko@laplace.snu.ac.kr>
Sender: wacko@pluto.ai.mit.edu
To: Adam Fedor <fedor@doc.com>
Cc: GNUStep Developer <gnustep-dev@gnu.ai.mit.edu>
Subject: Re: Threads on sparc-sun-solaris2.5.1
References: <3381D457.3812@doc.com>
From: "Yoo C. Chung" <wacko@laplace.snu.ac.kr>
Date: 21 May 1997 01:59:18 +0900
In-Reply-To: Adam Fedor's message of Tue, 20 May 1997 11:41:59 -0500
Message-ID: <87oha6hyft.fsf@laplace.snu.ac.kr>
Lines: 17
X-Mailer: Gnus v5.4.37/XEmacs 19.15
Resent-Date: Tue, 20 May 97 12:57:40 EDT
Resent-From: mccallum@ux2.sp.cs.cmu.edu
Resent-To: mccallum@jprc.com
Adam Fedor <fedor@doc.com> writes:
> Has anyone ever tested threads on a Solaris computer? It appears that
> you can't retreive thread data -- thr-solaris.c:objc_get_thread_data
> always returns NULL.
>
> Perhaps someone can try to run thread-except (from gstep-base/checks) to
> see if you get a segmentation fault trying to reset the exception
> handler from the data stored in the thread.
On Solaris you need to link in the thread library with -lthread. (It
would have saved me a lot of grief if they had just let me have a lot
of undefined symbol errors when linking without the thread library.)
--
Yoo C. Chung <http://plaza.snu.ac.kr/~wacko/>
School of Electrical Engineering, Seoul National University

View file

@ -1,20 +0,0 @@
We are now using the latest Objective C runtime patches from Scott
Christley. Unfortunately, they runtime changes and the corresponding
required GNUstep Base Library changes are not compatible with the old
runtime. That is, you must install the new runtime patches in order
to compile this version of the GNUstepBase Library.
Each thread now has their own exception handler and assertion handler.
(I haven't tested the assertion handler, though it should probably
work).
The biggest change with this patch is that the zone functions use
objc_malloc() to get more memory and that the default zone can be set
by the user with NSSetDefaultMallocZone().
I've extended the functionality of zones. Now one can obtain memory
statistics and also check for integrity. There is also more detailed
documentation, which I've sent in a separate message.

View file

@ -26,16 +26,18 @@ GNUSTEP_INSTALLATION_DIR = $(GNUSTEP_SYSTEM_ROOT)
include $(GNUSTEP_SYSTEM_ROOT)/Makefiles/common.make
# The application to be compiled
OBJC_PROGRAM_NAME = gdomap dread dwrite dremove
TOOL_NAME = dread dwrite dremove
OBJC_PROGRAM_NAME = gdomap
# The source files to be compiled
gdomap_C_FILES = gdomap.c
dread_C_FILES = dread.c
dremove_C_FILES = dremove.c
dwrite_C_FILES = dwrite.c
dread_OBJC_FILES = dread.m
dremove_OBJC_FILES = dremove.m
dwrite_OBJC_FILES = dwrite.m
-include Makefile.preamble
include $(GNUSTEP_SYSTEM_ROOT)/Makefiles/objc.make
include $(GNUSTEP_SYSTEM_ROOT)/Makefiles/tool.make
-include Makefile.postamble

View file

@ -1,3 +1,27 @@
#
# Tools makefile for the GNUstep Base Library
#
# Copyright (C) 1997 Free Software Foundation, Inc.
#
# Written by: Scott Christley <scottc@net-community.com>
#
# This file is part of the GNUstep Base Library.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with this library; if not, write to the Free
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
#
# Makefile.preamble
#
@ -12,32 +36,26 @@
#
# Additional flags to pass to the preprocessor
ADDITIONAL_CPPFLAGS +=
#ADDITIONAL_CPPFLAGS +=
# Additional flags to pass to the Objective-C compiler
ADDITIONAL_OBJCFLAGS +=
#ADDITIONAL_OBJCFLAGS +=
# Additional flags to pass to the C compiler
ADDITIONAL_CFLAGS +=
#ADDITIONAL_CFLAGS +=
# Additional include directories the compiler should search
ADDITIONAL_INCLUDE_DIRS +=
ADDITIONAL_INCLUDE_DIRS += -I../src
# Additional LDFLAGS to pass to the linker
# ADDITIONAL_LDFLAGS +=
#ADDITIONAL_LDFLAGS +=
# Additional library directories the linker should search
ADDITIONAL_LIB_DIRS +=
# Additional libraries when linking tools
ADDITIONAL_TOOL_LIBS +=
# Additional libraries when linking applications
ADDITIONAL_GUI_LIBS +=
ADDITIONAL_LIB_DIRS += -L../src/$(GNUSTEP_OBJ_DIR)
#
# Flags dealing with installing and uninstalling
#
# Additional directories to be created during installation
ADDITIONAL_INSTALL_DIRS +=
#ADDITIONAL_INSTALL_DIRS +=

View file

@ -26,6 +26,7 @@
#include <Foundation/NSString.h>
#include <Foundation/NSProcessInfo.h>
#include <Foundation/NSUserDefaults.h>
#include <errno.h>
int