mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-10 08:10:49 +00:00
Improved CON_AUTOLOAD tests.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@2780 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
4992c288e9
commit
097ee73e95
6 changed files with 47 additions and 26 deletions
11
ChangeLog
11
ChangeLog
|
@ -1,3 +1,14 @@
|
||||||
|
Tue Mar 31 11:32:03 1998 Adam Fedor <fedor@doc.com>
|
||||||
|
|
||||||
|
* aclocal.m4 (OBJC_CON_AUTOLOAD): Improved test. Check nm output
|
||||||
|
for indicator functions.
|
||||||
|
* configure: Regenerate.
|
||||||
|
|
||||||
|
* checks/GNUmakefile (LoadMe_RESOURCE_FILES): Changed name.
|
||||||
|
|
||||||
|
* doc/gnustep-howto.tmpl.texi: Update.
|
||||||
|
* doc/status.tmpl.texi: Likewise.
|
||||||
|
|
||||||
Fri Mar 20 11:15:00 1998 Richard Frith-Macdonald <richard@brainstorm.co.uk>
|
Fri Mar 20 11:15:00 1998 Richard Frith-Macdonald <richard@brainstorm.co.uk>
|
||||||
|
|
||||||
* checks/client.m: Added some tests for passing objects byref
|
* checks/client.m: Added some tests for passing objects byref
|
||||||
|
|
|
@ -170,9 +170,11 @@ make install
|
||||||
|
|
||||||
@subsection Compiling PCThreads
|
@subsection Compiling PCThreads
|
||||||
|
|
||||||
For Linux/GNU systems on Intel x86 processors, the PCThreads library is
|
For GNU/Linux systems on Intel x86 processors, the PCThreads library is
|
||||||
known to work with GNUstep. PCThreads version 1.1.0 is an enhanced version
|
known to work with GNUstep. PCThreads version 1.1.0 is an enhanced version
|
||||||
of PCThread 1.0.0 with better support for GNUstep.
|
of PCThread 1.0.0 with better support for GNUstep. PCThreads may no longer
|
||||||
|
be necessary on all GNU/Linux systems, such as Debian 2.0 or other systems
|
||||||
|
with glibc2.
|
||||||
|
|
||||||
@example
|
@example
|
||||||
cd /usr/src
|
cd /usr/src
|
||||||
|
@ -204,7 +206,7 @@ Special note for Solaris users. GNUstep works on Solaris/Intel systems;
|
||||||
however, GCC 2.8.0 has problems, so you must use the older patched GCC
|
however, GCC 2.8.0 has problems, so you must use the older patched GCC
|
||||||
2.7.2 instead. GCC 2.8.0 has also induced a problem on Solaris/Sparc
|
2.7.2 instead. GCC 2.8.0 has also induced a problem on Solaris/Sparc
|
||||||
systems; however, there is a patch to fix this in the contrib directory
|
systems; however, there is a patch to fix this in the contrib directory
|
||||||
on the ftp sites.
|
on the ftp sites (This is also true for egcs-1.0.1).
|
||||||
|
|
||||||
@table @asis
|
@table @asis
|
||||||
@item 1. Uncompress GCC:
|
@item 1. Uncompress GCC:
|
||||||
|
|
|
@ -35,6 +35,7 @@ Unknown status.
|
||||||
Doesn't yet call -awakeAfterUsingCoder:.
|
Doesn't yet call -awakeAfterUsingCoder:.
|
||||||
@item NSArray:: [9]
|
@item NSArray:: [9]
|
||||||
@item NSAssertionHandler:: [9]
|
@item NSAssertionHandler:: [9]
|
||||||
|
@item NSAttributedString:: [8]
|
||||||
@item NSAutoreleasePool:: [9]
|
@item NSAutoreleasePool:: [9]
|
||||||
But not exception- safe
|
But not exception- safe
|
||||||
@item NSBundle:: [8]
|
@item NSBundle:: [8]
|
||||||
|
@ -60,11 +61,17 @@ Unknown status.
|
||||||
@item NSDeserializer:: [7]
|
@item NSDeserializer:: [7]
|
||||||
@item NSDictionary:: [8]
|
@item NSDictionary:: [8]
|
||||||
@item NSDistantObject:: [7]
|
@item NSDistantObject:: [7]
|
||||||
|
@item NSDistributedLock:: [7]
|
||||||
@item NSEnumerator:: [9]
|
@item NSEnumerator:: [9]
|
||||||
@item NSException:: [9]
|
@item NSException:: [9]
|
||||||
But this needs integration with new, better
|
But this needs integration with new, better
|
||||||
|
@item NSFileHandle:: [9]
|
||||||
|
@item NSFileManager:: [9]
|
||||||
|
@item NSHashTable:: [8]
|
||||||
|
@item NSHost:: [8]
|
||||||
@item NSInvocation:: [3]
|
@item NSInvocation:: [3]
|
||||||
@item NSLock:: [8]
|
@item NSLock:: [8]
|
||||||
|
@item NSMapTable:: [8]
|
||||||
@item NSMethodSignature:: [4]
|
@item NSMethodSignature:: [4]
|
||||||
@item NSMutableArray:: [8]
|
@item NSMutableArray:: [8]
|
||||||
@item NSMutableCharacterSet:: [7]
|
@item NSMutableCharacterSet:: [7]
|
||||||
|
@ -89,6 +96,7 @@ Unknown status.
|
||||||
@item NSString:: [8]
|
@item NSString:: [8]
|
||||||
Careful, relationship with GNU String is tricky; this could
|
Careful, relationship with GNU String is tricky; this could
|
||||||
also use fixing.
|
also use fixing.
|
||||||
|
@item NSTask:: [8]
|
||||||
@item NSThread:: [8]
|
@item NSThread:: [8]
|
||||||
@item NSTimeZone:: [8]
|
@item NSTimeZone:: [8]
|
||||||
@item NSTimeZoneDetail:: [8]
|
@item NSTimeZoneDetail:: [8]
|
||||||
|
|
|
@ -138,7 +138,7 @@ BUNDLE_NAME=LoadMe
|
||||||
LoadMe_OBJC_FILES = LoadMe.m MyCategory.m SecondClass.m
|
LoadMe_OBJC_FILES = LoadMe.m MyCategory.m SecondClass.m
|
||||||
|
|
||||||
# The bundle resource files and directories
|
# The bundle resource files and directories
|
||||||
LoadMe_RESOURCES = English.lproj/NXStringTable.example
|
LoadMe_RESOURCE_FILES = English.lproj/NXStringTable.example
|
||||||
LoadMe_RESOURCE_DIRS = English.lproj
|
LoadMe_RESOURCE_DIRS = English.lproj
|
||||||
|
|
||||||
SRCS = $(TEST_TOOL_NAME:=.m)
|
SRCS = $(TEST_TOOL_NAME:=.m)
|
||||||
|
|
20
aclocal.m4
vendored
20
aclocal.m4
vendored
|
@ -28,11 +28,9 @@ AC_DEFUN(OBJC_CON_AUTOLOAD,
|
||||||
#
|
#
|
||||||
# If this system supports autoloading of constructors, that means that gcc
|
# If this system supports autoloading of constructors, that means that gcc
|
||||||
# doesn't have to do it for us via collect2. This routine tests for this
|
# doesn't have to do it for us via collect2. This routine tests for this
|
||||||
# in a very roundabout way by intentionally trying to link a program that
|
# in a very roundabout way by compiling a program with a constructor and
|
||||||
# will give a link error, and examining the output to see if collect2 gave
|
# testing the file, via nm, for certain symbols that collect2 includes to
|
||||||
# the error (which means the system does not autoload constructors)
|
# handle loading of constructors.
|
||||||
# The only problem is this test might incorrectly return yes if it fails
|
|
||||||
# for some other reason besides a link problem.
|
|
||||||
#
|
#
|
||||||
# Makes the following substitutions:
|
# Makes the following substitutions:
|
||||||
# Defines CON_AUTOLOAD (whether constructor functions are autoloaded)
|
# Defines CON_AUTOLOAD (whether constructor functions are autoloaded)
|
||||||
|
@ -42,16 +40,18 @@ AC_MSG_CHECKING(loading of constructor functions)
|
||||||
AC_CACHE_VAL(objc_cv_con_autoload,
|
AC_CACHE_VAL(objc_cv_con_autoload,
|
||||||
[dnl
|
[dnl
|
||||||
cat > conftest.constructor.c <<EOF
|
cat > conftest.constructor.c <<EOF
|
||||||
extern void undefined_function();
|
void cons_functions() __attribute__ ((constructor));
|
||||||
|
void cons_functions() {}
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
undefined_function();
|
return 0;
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
if test -n "`${CC-cc} -o conftest.constructor conftest.constructor.c 2>&1 | grep collect2`"; then
|
${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.constructor.$ac_ext $LIBS 1>&5
|
||||||
objc_cv_con_autoload=no
|
if test -n "`nm conftest | grep _ctors_aux`"; then
|
||||||
else
|
|
||||||
objc_cv_con_autoload=yes
|
objc_cv_con_autoload=yes
|
||||||
|
else
|
||||||
|
objc_cv_con_autoload=no
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
if test $objc_cv_con_autoload = yes; then
|
if test $objc_cv_con_autoload = yes; then
|
||||||
|
|
22
configure
vendored
22
configure
vendored
|
@ -1178,31 +1178,31 @@ EOF
|
||||||
#
|
#
|
||||||
# If this system supports autoloading of constructors, that means that gcc
|
# If this system supports autoloading of constructors, that means that gcc
|
||||||
# doesn't have to do it for us via collect2. This routine tests for this
|
# doesn't have to do it for us via collect2. This routine tests for this
|
||||||
# in a very roundabout way by intentionally trying to link a program that
|
# in a very roundabout way by compiling a program with a constructor and
|
||||||
# will give a link error, and examining the output to see if collect2 gave
|
# testing the file, via nm, for certain symbols that collect2 includes to
|
||||||
# the error (which means the system does not autoload constructors)
|
# handle loading of constructors.
|
||||||
# The only problem is this test might incorrectly return yes if it fails
|
|
||||||
# for some other reason besides a link problem.
|
|
||||||
#
|
#
|
||||||
# Makes the following substitutions:
|
# Makes the following substitutions:
|
||||||
# Defines CON_AUTOLOAD (whether constructor functions are autoloaded)
|
# Defines CON_AUTOLOAD (whether constructor functions are autoloaded)
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
echo $ac_n "checking loading of constructor functions""... $ac_c" 1>&6
|
echo $ac_n "checking loading of constructor functions""... $ac_c" 1>&6
|
||||||
echo "configure:1192: checking loading of constructor functions" >&5
|
echo "configure:1190: checking loading of constructor functions" >&5
|
||||||
if eval "test \"`echo '$''{'objc_cv_con_autoload'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'objc_cv_con_autoload'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
cat > conftest.constructor.c <<EOF
|
cat > conftest.constructor.c <<EOF
|
||||||
extern void undefined_function();
|
void cons_functions() __attribute__ ((constructor));
|
||||||
|
void cons_functions() {}
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
undefined_function();
|
return 0;
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
if test -n "`${CC-cc} -o conftest.constructor conftest.constructor.c 2>&1 | grep collect2`"; then
|
${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.constructor.$ac_ext $LIBS 1>&5
|
||||||
objc_cv_con_autoload=no
|
if test -n "`nm conftest | grep _ctors_aux`"; then
|
||||||
else
|
|
||||||
objc_cv_con_autoload=yes
|
objc_cv_con_autoload=yes
|
||||||
|
else
|
||||||
|
objc_cv_con_autoload=no
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in a new issue