From: Pekka Riikonen
Date: Fri, 14 Mar 2008 14:22:31 +0000 (+0200)
Subject: Added support for detecting SSE4.1, SSE4.2, SSE5. Webpage changes.
X-Git-Tag: 1.2.beta3~4
X-Git-Url: http://git.silc.fi/gitweb/?a=commitdiff_plain;h=6adfa4f35f0876208cac893c6818254dff85cd90;p=runtime.git
Added support for detecting SSE4.1, SSE4.2, SSE5. Webpage changes.
---
diff --git a/TODO b/TODO
index f6c2af46..1aafd2f2 100644
--- a/TODO
+++ b/TODO
@@ -11,39 +11,12 @@ on some of the TODO entries simply let us know about it by dropping a note
to silc-devel mailing list or appear on 'silc' channel on SILCNet.
-General
-=======
-
- o Create apps/tutorial containing various Toolkit API tutorials.
-
- o The Toolkit split. The Toolkit is to be splitted in parts. How many
- parts and what the parts are isn't decided yet. Each part is a separate
- software package. Current thinking is of the following:
-
- SILC Toolkit SILC protocol, client and server library
- SILC Runtime Toolkit runtime library
- SILC Crypto Toolkit crypto, asn1, math, skr, pgp, etc.
-
- The rationale for this is of course that other than SILC projects
- might like to use the various libraries SILC Toolkit provides, but
- naturally they don't want the bloat of SILC protocol related stuff.
-
- The Runtime library in SILC Toolkit is a general purpose runtime library,
- like Glib and APR are. The runtime library is to be developed further
- to provide alternative to Glib and APR.
-
- The Crypto library in SILC Toolkit is a general purpose crypto library
- providing pretty nice APIs compared to many other crypto libraries,
- especially OpenSSL. The Crypto library is to be developed further
- to include support for OpenPGP, X.509 and SSH2.
-
-
Runtime library, lib/silcutil/
==============================
- o Unix socket support to Socket Stream API (local socket stream).
+ o Add SILC Zip API, compression.
- o Simple SILC Rand API for pseudo-random numbers. (***DONE)
+ o Unix socket support to Socket Stream API (local socket stream).
o file removing, chmod, rmmod, etc. chdir, rmdir, stat, etc. to
lib/silcutil/silcfileutil.h.
@@ -71,6 +44,8 @@ Runtime library, lib/silcutil/
SILC currently supports SOCKS4 and SOCKS5 but it needs to be compiled
in separately.
+ o Simple SILC Rand API for pseudo-random numbers. (***DONE)
+
o Add directory opening/traversing functions (***DONE, TODO Windows & Symbian)
o regex from /lib/contrib to lib/silcutil, define SILC Regex API. (***DONE)
@@ -151,10 +126,6 @@ Runtime library, lib/silcutil/
Add silc_stream_get_root and add get_root stream operation. It
returns the root of the stream or NULL if stream doesn't have root.) maybe
- (o Compression routines are missing. The protocol supports packet
- compression thus it must be implemented. SILC Zip API must be
- defined.) maybe
-
(o SilcIpAddr abstraction. Ipv4 and Ipv6 support to the abstaction.)
maybe
@@ -166,6 +137,19 @@ Runtime library, lib/silcutil/
rwlock implementation using atomic operations.) not for now.
+SILC XML Library, lib/silcxml/
+==============================
+
+ o SILC XML API (wrapper to expat). Look at the expat API and simplify
+ it. The SILC XML API should have at most 8-10 API functions. It should
+ be possible to create full XML parser with only one function. And, it
+ should be possible to have a function that is able to parse an entire
+ XML document. It should also have a parser function to be able to
+ parse a stream of XML data (SilcStream). It MUST NOT have operations
+ that require multiple function calls to be able to execute that one
+ operation (like creating parser).
+
+
Windows Support
===============
diff --git a/configure.ad b/configure.ad
index cd64788f..7d76b9a4 100644
--- a/configure.ad
+++ b/configure.ad
@@ -149,20 +149,16 @@ case "$host_cpu" in
SILC_CPU_FLAG(sse2, true, AC_DEFINE([SILC_CPU_SSE2], [], [SILC_CPU_SSE2]), [])
SILC_CPU_FLAG(pni, true, AC_DEFINE([SILC_CPU_SSE3], [], [SILC_CPU_SSE3]), [])
SILC_CPU_FLAG(ssse3, true, AC_DEFINE([SILC_CPU_SSSE3], [], [SILC_CPU_SSSE3]), [])
- SILC_CPU_FLAG(sse4, true, AC_DEFINE([SILC_CPU_SSE4], [], [SILC_CPU_SSE4]), [])
+ SILC_CPU_FLAG(sse4a, true, AC_DEFINE([SILC_CPU_SSE4A], [], [SILC_CPU_SSE4A]), [])
+ SILC_CPU_FLAG(sse4_1, true, AC_DEFINE([SILC_CPU_SSE41], [], [SILC_CPU_SSE41]), [])
+ SILC_CPU_FLAG(sse4_2, true, AC_DEFINE([SILC_CPU_SSE42], [], [SILC_CPU_SSE42]), [])
+ SILC_CPU_FLAG(sse5, true, AC_DEFINE([SILC_CPU_SSE5], [], [SILC_CPU_SSE5]), [])
;;
# Intel IA-64, 64-bit CPU (not x86_64 compatible)
ia64)
AC_DEFINE([SILC_IA64], [], [SILC_IA64])
cpu_ia64=true
-
- # Check for specific CPU features
- SILC_CPU_FLAG(mmx, true, AC_DEFINE([SILC_CPU_MMX], [], [SILC_CPU_MMX]), [])
- SILC_CPU_FLAG(sse2, true, AC_DEFINE([SILC_CPU_SSE2], [], [SILC_CPU_SSE2]), [])
- SILC_CPU_FLAG(pni, true, AC_DEFINE([SILC_CPU_SSE3], [], [SILC_CPU_SSE3]), [])
- SILC_CPU_FLAG(ssse3, true, AC_DEFINE([SILC_CPU_SSSE3], [], [SILC_CPU_SSSE3]), [])
- SILC_CPU_FLAG(sse4, true, AC_DEFINE([SILC_CPU_SSE4], [], [SILC_CPU_SSE4]), [])
;;
# AMD/Intel x86_64, 64-bit CPU
@@ -175,7 +171,10 @@ case "$host_cpu" in
SILC_CPU_FLAG(sse2, true, AC_DEFINE([SILC_CPU_SSE2], [], [SILC_CPU_SSE2]), [])
SILC_CPU_FLAG(pni, true, AC_DEFINE([SILC_CPU_SSE3], [], [SILC_CPU_SSE3]), [])
SILC_CPU_FLAG(ssse3, true, AC_DEFINE([SILC_CPU_SSSE3], [], [SILC_CPU_SSSE3]), [])
- SILC_CPU_FLAG(sse4, true, AC_DEFINE([SILC_CPU_SSE4], [], [SILC_CPU_SSE4]), [])
+ SILC_CPU_FLAG(sse4a, true, AC_DEFINE([SILC_CPU_SSE4A], [], [SILC_CPU_SSE4A]), [])
+ SILC_CPU_FLAG(sse4_1, true, AC_DEFINE([SILC_CPU_SSE41], [], [SILC_CPU_SSE41]), [])
+ SILC_CPU_FLAG(sse4_2, true, AC_DEFINE([SILC_CPU_SSE42], [], [SILC_CPU_SSE42]), [])
+ SILC_CPU_FLAG(sse5, true, AC_DEFINE([SILC_CPU_SSE5], [], [SILC_CPU_SSE5]), [])
;;
# PowerPC, 32-bit and 64-bit CPUs
@@ -197,7 +196,7 @@ if test x$want_cpu_optimizations = xtrue; then
# Set some compiler options based on CPU
if test "x$CC" = "xicc"; then
# ICC flags
- if test x$x_have_cpu_sse4 = xtrue; then
+ if test x$x_have_cpu_sse4_1 = xtrue; then
SILC_ADD_CFLAGS(-axS)
fi
if test x$x_have_cpu_ssse3 = xtrue; then
@@ -218,7 +217,7 @@ if test x$want_cpu_optimizations = xtrue; then
if test x$x_have_cpu_ssse3 = xtrue; then
SILC_ADD_CFLAGS(-mssse3)
fi
- if test x$x_have_cpu_sse4 = xtrue; then
+ if test x$x_have_cpu_sse4_1 = xtrue; then
SILC_ADD_CFLAGS(-msse4)
fi
fi
@@ -435,6 +434,7 @@ AC_CHECK_FUNC(epoll_wait,
# Check for va_copy
va_copy=false
+__SILC_VA_COPY="#define __SILC_VA_COPY(dest, src) dest = src"
AC_MSG_CHECKING(for va_copy)
AC_TRY_COMPILE(
[
@@ -459,7 +459,7 @@ AC_TRY_COMPILE(
}
],
[
- AC_DEFINE([HAVE_VA_COPY], [], [HAVE_VA_COPY])
+ __SILC_VA_COPY="#define __SILC_VA_COPY(dest, src) va_copy(dest, src)"
AC_MSG_RESULT(yes)
va_copy=true
],
@@ -494,7 +494,7 @@ if test x$va_copy = xfalse; then
}
],
[
- AC_DEFINE([HAVE___VA_COPY], [], [HAVE___VA_COPY])
+ __SILC_VA_COPY="#define __SILC_VA_COPY(dest, src) __va_copy(dest, src)"
AC_MSG_RESULT(yes)
va_copy=true
],
@@ -529,10 +529,12 @@ if test x$va_copy = xfalse; then
[va_copy=false],
[
AC_DEFINE([SILC_VA_COPY_ARRAY], [], [SILC_VA_COPY_ARRAY])
+ __SILC_VA_COPY="#define __SILC_VA_COPY(dest, src) memmove(dest, src, sizeof(va_list))"
],
[va=copy=false]
)
fi
+AC_SUBST(__SILC_VA_COPY)
# Check for timezone and tm_gmtoff for timezone information
AC_MSG_CHECKING(whether system has timezone)
diff --git a/distdir/pre-dist-runtime b/distdir/pre-dist-runtime
index 8d59cd31..5f7c94af 100644
--- a/distdir/pre-dist-runtime
+++ b/distdir/pre-dist-runtime
@@ -13,9 +13,19 @@ fi
sed -e "s/SILC_VERSION/$dist_version/" -e "s/SILC_RELEASE/$release/" \
srt.spec.in > srt.spec
+# First configure with debug and stacktrace and run all tests
+./configure --enable-debug --enable-stack-trace
+make clean
+make -j4
+make check -j4
+
+# Then actual configuration and making
./configure
+make clean
+make -j4
+make check -j4
cd doc
make toolkit-ref-html
cd ..
-ln -s ../../ChangeLog doc/runtime/ChangeLog
+cp ChangeLog doc/runtime/ChangeLog
diff --git a/doc/runtime.in/building.html b/doc/runtime.in/building.html
index 45ee00b1..375f3e5b 100644
--- a/doc/runtime.in/building.html
+++ b/doc/runtime.in/building.html
@@ -18,7 +18,6 @@
SILC Runtime Toolkit Manual
Index |
-
@@ -242,7 +241,6 @@ complete building instructions.
SILC Runtime Toolkit Manual
Index |
-
diff --git a/doc/runtime.in/index.html.in b/doc/runtime.in/index.html.in
index 78b870fe..2f6f5e51 100644
--- a/doc/runtime.in/index.html.in
+++ b/doc/runtime.in/index.html.in
@@ -15,7 +15,6 @@
Copyright © 2001 - 2008 SILC Project
SILC Project Website |
-
@@ -67,7 +66,7 @@ SRT is free software and is dual-licensed with GNU GPL and BSD licenses.
To clone SRT repository give one of the following commands:
git clone git://git.silc.fi/runtime
- git clone http://git.silc.fi/runtime
+ git clone http://git.silc.fi/runtime.in
@@ -79,7 +78,6 @@ To clone SRT repository give one of the following commands:
Copyright © 2001 - 2008 SILC Project
SILC Project Website |
-
diff --git a/doc/runtime.in/manual.html.in b/doc/runtime.in/manual.html.in
index 7d6f4f45..7c6321ec 100644
--- a/doc/runtime.in/manual.html.in
+++ b/doc/runtime.in/manual.html.in
@@ -18,7 +18,6 @@
SILC Runtime Toolkit Manual
Index |
-
@@ -34,9 +33,9 @@ Copyright © 1997 - 2008 The SILC Project
Updated: @DATE@
-Welcome to the SILC Runtime Toolkit Reference Manual. The manual is a
-complete developer guide and reference for the application programmer.
-The manual is intended for programmers who would like to use the SILC
+Welcome to the SILC Runtime Toolkit Reference Manual. The manual is a
+complete developer guide and reference for the application programmer.
+The manual is intended for programmers who would like to use the SILC
Runtime Toolkit as their primary runtime in their application.
The application programming interfaces are automatically generated from the
@@ -112,7 +111,6 @@ of the Toolkit always delivers the latest version of this reference manual.
SILC Runtime Toolkit Manual
Index |
-
diff --git a/doc/runtime.in/platforms.html b/doc/runtime.in/platforms.html
index 4e352410..de0dcaad 100644
--- a/doc/runtime.in/platforms.html
+++ b/doc/runtime.in/platforms.html
@@ -18,7 +18,6 @@
SILC Runtime Toolkit Manual
Index |
-
@@ -31,9 +30,9 @@
Platform Implementations
-This document describes the implementation issues with different platforms
-that the SILC Runtime Toolkit support. Some of the supported platforms
-does not support all the features delivered with the Toolkit or they may
+This document describes the implementation issues with different platforms
+that the SILC Runtime Toolkit support. Some of the supported platforms
+does not support all the features delivered with the Toolkit or they may
behave differently from other platforms.
@@ -63,8 +62,8 @@ implementation issues with current version of Toolkit.
Windows Implementation
-By default all features and components delivered with Toolkit are
-supported on Windows. However, there are some certain issues with the
+By default all features and components delivered with Toolkit are
+supported on Windows. However, there are some certain issues with the
Windows version of the Toolkit.
@@ -85,29 +84,29 @@ implementation issues with current version of Toolkit.
Symbian OS Implementation
-Symbian OS support in Toolkit is still experimental. By default all
-features and components delivered with the Toolkit are supported and
-should work on Symbian. However, there are some issues with the Symbian
+Symbian OS support in Toolkit is still experimental. By default all
+features and components delivered with the Toolkit are supported and
+should work on Symbian. However, there are some issues with the Symbian
version of the Toolkit of what Symbian developers need to be aware.
-- The function silc_schedule on Symbian will allocate new Active
-Scheduler Waiter and will block the calling thread. The caller should
+
- The function silc_schedule on Symbian will allocate new Active
+Scheduler Waiter and will block the calling thread. The caller should
allocate Active Scheduler before calling silc_schedule.
-
- When adding timeout tasks to SILC Scheduler the SILC Scheduler is woken
-up after the timeout task has been added. This allows adding of the
-timeout tasks from Symbian active objects outside the SILC Scheduler loop.
+
- When adding timeout tasks to SILC Scheduler the SILC Scheduler is woken
+up after the timeout task has been added. This allows adding of the
+timeout tasks from Symbian active objects outside the SILC Scheduler loop.
On other platforms this wakeup operation is not performed.
-
- Adding fd task to SILC Scheduler will not schedule the fd for any
-operation. Instead, programmer should use SILC Socket Stream API and SILC
-Fd Stream API on Symbian when dealing with file descriptors and sockets.
-These APIs provide asynchronous notification when data is available and can
+
- Adding fd task to SILC Scheduler will not schedule the fd for any
+operation. Instead, programmer should use SILC Socket Stream API and SILC
+Fd Stream API on Symbian when dealing with file descriptors and sockets.
+These APIs provide asynchronous notification when data is available and can
be written.
-
- The function silc_thread_create on Symbian will install Active
-Scheduler and allocate Cleanup Stack for the new thread. The created
+
- The function silc_thread_create on Symbian will install Active
+Scheduler and allocate Cleanup Stack for the new thread. The created
thread always shares heap with the parent thread.
@@ -123,11 +122,9 @@ thread always shares heap with the parent thread.
SILC Runtime Toolkit Manual
Index |
-