Author: tschoening
Date: Sun Jan 26 19:34:24 2014
New Revision: 1561536
URL: http://svn.apache.org/r1561536
Log:
LOG4CXX-421: Some progress in fixing build errors on Windows and specially
Borland Builder.
Added:
incubator/log4cxx/trunk/src/ant/ilink32-workaround.xml
Modified:
incubator/log4cxx/trunk/build.xml
incubator/log4cxx/trunk/src/ant/apr-build.xml
incubator/log4cxx/trunk/src/ant/common.xml
incubator/log4cxx/trunk/src/test/cpp/abts.h
incubator/log4cxx/trunk/src/test/cpp/helpers/transcodertestcase.cpp
Modified: incubator/log4cxx/trunk/build.xml
URL:
http://svn.apache.org/viewvc/incubator/log4cxx/trunk/build.xml?rev=1561536&r1=1561535&r2=1561536&view=diff
==============================================================================
--- incubator/log4cxx/trunk/build.xml (original)
+++ incubator/log4cxx/trunk/build.xml Sun Jan 26 19:34:24 2014
@@ -51,7 +51,7 @@
if="is-unix"
/>
- <syslibset libs="advapi32 mswsock ws2_32 shell32"
+ <syslibset libs="advapi32 mswsock shell32 ws2_32"
if="is-windows"
/>
<syslibset libs="stdc++"
@@ -81,6 +81,7 @@
<!ENTITY find-apr SYSTEM 'src/ant/find-apr.xml'>
<!ENTITY find-apr-util SYSTEM 'src/ant/find-apr-util.xml'>
<!ENTITY find-libesmtp SYSTEM 'src/ant/find-libesmtp.xml'>
+<!ENTITY ilink32Workaround SYSTEM 'src/ant/ilink32-workaround.xml'>
]>
<!--
@@ -93,6 +94,7 @@
&find-apr;
&find-apr-util;
&find-libesmtp;
+ &ilink32Workaround;
<property name="base.dir"
location="."
@@ -247,45 +249,52 @@
/>
<mkdir dir="${log4cxx.lib.dir}" />
- <condition property="with-logchar" value="wchar_t">
+ <condition property="with-logchar"
+ value="wchar_t">
<isset property="is-windows" />
</condition>
<property name="with-logchar"
value="utf-8"
/>
- <condition property="has-libesmtp" value="1">
+ <condition property="has-libesmtp"
+ value="1">
<equals arg1="${with-SMTP}"
arg2="libesmtp"
/>
</condition>
- <condition property="odbc.lib" value="iodbc">
+ <condition property="odbc.lib"
+ value="iodbc">
<equals arg1="${with-ODBC}"
arg2="iODBC"
/>
</condition>
- <condition property="odbc.lib" value="unixodbc">
+ <condition property="odbc.lib"
+ value="unixodbc">
<equals arg1="${with-ODBC}"
arg2="unixODBC"
/>
</condition>
- <condition property="odbc.lib" value="odbc32">
+ <condition property="odbc.lib"
+ value="odbc32">
<equals arg1="${with-ODBC}"
arg2="Microsoft"
/>
</condition>
- <condition property="has-ODBC" value="1">
+ <condition property="has-ODBC"
+ value="1">
<isset property="odbc.lib" />
</condition>
<property name="has-ODBC"
value="0"
/>
- <condition property="force-ant" value="1">
+ <condition property="force-ant"
+ value="1">
<equals arg1="${find}"
arg2="false"
/>
@@ -326,9 +335,6 @@
file="${include.dir}/log4cxx/private/log4cxx_private.hw"
overwrite="true"
/>
- <property name="odbc.lib"
- value="odbc32"
- />
</target>
<target name="configure"
@@ -342,7 +348,8 @@
<echo message="Configuring enable-unichar=${enable-unichar}" />
<echo message="Configuring enable-cfstring=${enable-cfstring}"
/>
- <condition property="logchar_is_utf8" value="1">
+ <condition property="logchar_is_utf8"
+ value="1">
<equals arg1="${with-logchar}"
arg2="utf-8"
/>
@@ -351,7 +358,8 @@
value="0"
/>
- <condition property="logchar_is_unichar" value="1">
+ <condition property="logchar_is_unichar"
+ value="1">
<equals arg1="${with-logchar}"
arg2="unichar"
/>
@@ -360,7 +368,8 @@
value="0"
/>
- <condition property="logchar_is_wchar" value="1">
+ <condition property="logchar_is_wchar"
+ value="1">
<equals arg1="${with-logchar}"
arg2="wchar_t"
/>
@@ -384,7 +393,8 @@
replace="${logchar_is_wchar}"
/>
- <condition property="charset_is_utf8" value="1">
+ <condition property="charset_is_utf8"
+ value="1">
<equals arg1="${with-charset}"
arg2="utf-8"
/>
@@ -393,7 +403,8 @@
value="0"
/>
- <condition property="charset_is_iso-8859-1" value="1">
+ <condition property="charset_is_iso-8859-1"
+ value="1">
<equals arg1="${with-charset}"
arg2="iso-8859-1"
/>
@@ -402,7 +413,8 @@
value="0"
/>
- <condition property="charset_is_usascii" value="1">
+ <condition property="charset_is_usascii"
+ value="1">
<equals arg1="${with-charset}"
arg2="usascii"
/>
@@ -411,7 +423,8 @@
value="0"
/>
- <condition property="charset_is_ebcdic" value="1">
+ <condition property="charset_is_ebcdic"
+ value="1">
<equals arg1="${with-charset}"
arg2="ebcdic"
/>
@@ -954,6 +967,11 @@
<antcall target="update-rc-files-version-info" />
+ <!--
+ Linking doesn't work for bcc and is implemented
manually afterwards, but because
+ compiling works we don't want to unnecessary double
code and simply ignore linkage
+ errors until there's a way to explicitly don't link if
bcc.
+ -->
<cc name="${project.compiler}"
exceptions="true"
outfile="${log4cxx.lib.dir}/${lib.prefix}${lib.name}${lib.suffix}"
@@ -964,7 +982,8 @@
outtype="${lib.type}"
objdir="${log4cxx.lib.dir}/log4cxx_obj"
debug="${debug}"
- projectsOnly="${projectsOnly}">
+ projectsOnly="${projectsOnly}"
+ failonerror="false">
<!-- brc aborts with an access violation. -->
<compiler name="${resource.compiler}"
@@ -995,9 +1014,6 @@
if="esmtp.include.dir"
/>
- <defineset define="_USRDLL DLL_EXPORTS"
- if="is-windows"
- />
<defineset define="LOG4CXX"
/>
<defineset define="LOG4CXX_STATIC"
@@ -1009,14 +1025,16 @@
<defineset define="APU_DECLARE_STATIC"
if="apr-util-static"
/>
- <defineset define="WIN32"
+ <defineset define="WIN32 _USRDLL DLL_EXPORTS"
if="is-windows"
/>
<compilerarg value="${pic-option}"
if="pic-option"
/>
+
&libsets;
+
<project type="${project.type}"
outfile="${projects.dir}/${lib.name}"
if="project.if">
@@ -1027,6 +1045,7 @@
<dependency name="${projects.dir}/libesmtp" />
</project>
</cc>
+ <antcall target="build-lib-ilink32-workaround" />
<antcall target="restore-rc-files-version-info" />
@@ -1096,11 +1115,15 @@
<compilerarg value="${pic-option}" if="pic-option" />
- <libset libs="${lib.prefix}${lib.name}${lib.suffix}"
dir="${log4cxx.lib.dir}" />
+ <libset libs="${lib.prefix}${lib.name}${lib.suffix}"
+ dir="${log4cxx.lib.dir}"
+ />
&libsets;
- <project outfile="${projects.dir}/${example.name}"
type="${project.type}" if="project.if">
- <comment>&license;</comment>
+ <project
outfile="${projects.dir}/${example.name}"
+ type="${project.type}"
+ if="project.if">
+ <comment>&license;</comment>
<dependency file="${projects.dir}/apr" />
<dependency file="${projects.dir}/xml" />
<dependency name="${projects.dir}/aprutil"
depends="apr,xml" />
@@ -1219,7 +1242,8 @@
outtype="executable"
objdir="${log4cxx.lib.dir}/testsuite_obj"
debug="${debug}"
- projectsOnly="${projectsOnly}">
+ projectsOnly="${projectsOnly}"
+ failonerror="false">
<fileset dir="${tests.cpp.dir}"
includes="**/*.cpp **/*.c
**/*.h"
@@ -1268,6 +1292,7 @@
<dependency file="${projects.dir}/log4cxx"
depends="apr,aprutil,libesmtp" />
</project>
</cc>
+ <antcall target="build-unittest-ilink32-workaround" />
</target>
<target name="build-standalone-unittest"
Modified: incubator/log4cxx/trunk/src/ant/apr-build.xml
URL:
http://svn.apache.org/viewvc/incubator/log4cxx/trunk/src/ant/apr-build.xml?rev=1561536&r1=1561535&r2=1561536&view=diff
==============================================================================
--- incubator/log4cxx/trunk/src/ant/apr-build.xml (original)
+++ incubator/log4cxx/trunk/src/ant/apr-build.xml Sun Jan 26 19:34:24 2014
@@ -18,6 +18,7 @@
-->
<!DOCTYPE project [
<!ENTITY common SYSTEM 'common.xml'>
+<!ENTITY ilink32Workaround SYSTEM 'ilink32-workaround.xml'>
<!ENTITY license '
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -42,6 +43,7 @@
<project name="apr" default="check">
&common;
+&ilink32Workaround;
<property name="src.dir"
location="${basedir}"
@@ -161,19 +163,22 @@
if="is-static"
/>
<fileset dir="${src.dir}/file_io/unix"
- includes="copy.c fileacc.c filepath_util.c fullrw.c
mktemp.c tempdir.c" />
+ includes="copy.c fileacc.c filepath_util.c
fullrw.c mktemp.c tempdir.c"
+ />
<fileset dir="${src.dir}/memory/unix"
includes="*.c"
/>
<fileset dir="${src.dir}/misc/unix"
- includes="errorcodes.c getopt.c otherchild.c version.c"
/>
+ includes="errorcodes.c getopt.c
otherchild.c version.c"
+ />
<fileset dir="${src.dir}/mmap/unix"
includes="common.c"
/>
<fileset dir="${src.dir}/network_io/unix"
- includes="inet_ntop.c inet_pton.c sockaddr.c" />
+ includes="inet_ntop.c inet_pton.c
sockaddr.c"
+ />
<fileset dir="${src.dir}/poll/unix"
- includes="select.c"
+ includes="*.c"
/>
<fileset dir="${src.dir}/random/unix"
includes="*.c"
@@ -220,11 +225,23 @@
<defineset define="HAVE_CONFIG_H DARWIN
SIGPROCMASK_SETS_THREAD_MASK"
if="is-mac"
/>
+ <defineset if="is-bcc">
+ <define name="_dup2"
+ value="dup2"
+ />
+ <define name="_isatty"
+ value="isatty"
+ />
+ <define name="_setmode"
+ value="setmode"
+ />
+ </defineset>
+
<compilerarg value="${pic-option}"
if="pic-option"
/>
- <libset libs="advapi32 ws2_32 mswsock rpcrt4"
+ <libset libs="advapi32 mswsock rpcrt4 ws2_32"
if="is-windows"
/>
<libset libs="pthread dl"
@@ -240,6 +257,7 @@
<comment>&license;</comment>
</project>
</cc>
+ <!-- antcall target="apr-build-ilink32-workaround" /-->
<property name="apr.lib.dir"
location="${executable.dir}"
Modified: incubator/log4cxx/trunk/src/ant/common.xml
URL:
http://svn.apache.org/viewvc/incubator/log4cxx/trunk/src/ant/common.xml?rev=1561536&r1=1561535&r2=1561536&view=diff
==============================================================================
--- incubator/log4cxx/trunk/src/ant/common.xml (original)
+++ incubator/log4cxx/trunk/src/ant/common.xml Sun Jan 26 19:34:24 2014
@@ -15,7 +15,7 @@
limitations under the License.
-->
-
+
<property file="build.properties"
/>
<property name="debug"
@@ -32,11 +32,11 @@
/>
<property name="runtime"
value="dynamic"
-/>
+/>
<taskdef resource="cpptasks.tasks" />
<typedef resource="cpptasks.types" />
-<taskdef resource="net/sf/antcontrib/antcontrib.properties" />
+<taskdef resource="net/sf/antcontrib/antcontrib.properties" />
<target name="os-detect">
<condition property="os.family"
@@ -95,6 +95,19 @@
<equals arg1="${compiler}" arg2="g++" />
</or>
</condition>
+
+ <!-- LOG4CXX-421 -->
+ <exec executable="where"
+ outputproperty="ilink32.path"
+ failonerror="true">
+ <arg value="ilink32" />
+ </exec>
+ <propertyregex property="bcc.rootPath"
+ input="${ilink32.path}"
+ regexp="^(.+?)\\bin\\ilink32.exe"
+ select="\1"
+ casesensitive="false"
+ />
</target>
<target name="mac-init"
Added: incubator/log4cxx/trunk/src/ant/ilink32-workaround.xml
URL:
http://svn.apache.org/viewvc/incubator/log4cxx/trunk/src/ant/ilink32-workaround.xml?rev=1561536&view=auto
==============================================================================
--- incubator/log4cxx/trunk/src/ant/ilink32-workaround.xml (added)
+++ incubator/log4cxx/trunk/src/ant/ilink32-workaround.xml Sun Jan 26 19:34:24
2014
@@ -0,0 +1,84 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+
+<!--
+ LOG4CXX-421
+
+ ilink32 doesn't work the way it's used by cpptasks anymore, but it
should have created a
+ partially correct answer file which we'll need to update to get a
properly linked result.
+ -->
+
+<target name="apr-build-ilink32-workaround"
+ if="is-bcc">
+ <concat destfile="${target.dir}/debug/static/apr-1.lib.rsp"
+ append="true"> &
++"${bcc.rootPath}\lib\win32\release\psdk\advapi32.lib" &
++"${bcc.rootPath}\lib\win32\release\psdk\mswsock.lib" &
++"${bcc.rootPath}\lib\win32\release\psdk\rpcrt4.lib" &
++"${bcc.rootPath}\lib\win32\release\psdk\ws2_32.lib"</concat>
+
+ <exec executable="ilink32"
+ failonerror="true">
+ <arg value="@${target.dir}\debug\static\apr-1.lib.rsp" />
+ </exec>
+</target>
+
+<target name="build-lib-ilink32-workaround"
+ if="is-bcc">
+ <replace file="${target.dir}/debug/shared/log4cxx.dll.rsp"
+ token="/Gi +">
+ <replacevalue expandProperties="true">/Gi +
+/aa +</replacevalue>
+ </replace>
+ <replace file="${target.dir}/debug/shared/log4cxx.dll.rsp"
+ token="apr-1.lib +">
+ <replacevalue expandProperties="true">apr-1.lib +
+"${bcc.rootPath}\lib\win32\release\psdk\advapi32.lib" +
+"${bcc.rootPath}\lib\win32\release\psdk\mswsock.lib" +
+"${bcc.rootPath}\lib\win32\release\psdk\odbc32.lib" +
+"${bcc.rootPath}\lib\win32\release\psdk\shell32.lib" +
+"${bcc.rootPath}\lib\win32\release\psdk\ws2_32.lib" +</replacevalue>
+ </replace>
+ <replaceregexp file="${target.dir}/debug/shared/log4cxx.dll.rsp"
+ match="cw32\.lib"
+ replace="cw32mt.lib"
+ />
+
+ <exec executable="ilink32"
+ failonerror="true">
+ <arg value="@${target.dir}\debug\shared\log4cxx.dll.rsp" />
+ </exec>
+</target>
+
+<target name="build-unittest-ilink32-workaround"
+ if="is-bcc">
+ <replace file="${target.dir}/debug/shared/testsuite.exe.rsp"
+ token="apr-1.lib +">
+ <replacevalue expandProperties="true">apr-1.lib +
+"${bcc.rootPath}\lib\win32\release\psdk\ws2_32.lib" +</replacevalue>
+ </replace>
+ <replaceregexp file="${target.dir}/debug/shared/testsuite.exe.rsp"
+ match="cw32\.lib"
+ replace="cw32mt.lib"
+ />
+
+ <exec executable="ilink32"
+ failonerror="true">
+ <arg value="@${target.dir}\debug\shared\testsuite.exe.rsp" />
+ </exec>
+</target>
\ No newline at end of file
Modified: incubator/log4cxx/trunk/src/test/cpp/abts.h
URL:
http://svn.apache.org/viewvc/incubator/log4cxx/trunk/src/test/cpp/abts.h?rev=1561536&r1=1561535&r2=1561536&view=diff
==============================================================================
--- incubator/log4cxx/trunk/src/test/cpp/abts.h (original)
+++ incubator/log4cxx/trunk/src/test/cpp/abts.h Sun Jan 26 19:34:24 2014
@@ -19,6 +19,8 @@
#include <string.h>
#ifdef WIN32
#include <io.h>
+// WIN32 is missing STDOUT_FILENO and Co.
+#include <apr.h>
#else
#include <unistd.h>
#endif
Modified: incubator/log4cxx/trunk/src/test/cpp/helpers/transcodertestcase.cpp
URL:
http://svn.apache.org/viewvc/incubator/log4cxx/trunk/src/test/cpp/helpers/transcodertestcase.cpp?rev=1561536&r1=1561535&r2=1561536&view=diff
==============================================================================
--- incubator/log4cxx/trunk/src/test/cpp/helpers/transcodertestcase.cpp
(original)
+++ incubator/log4cxx/trunk/src/test/cpp/helpers/transcodertestcase.cpp Sun Jan
26 19:34:24 2014
@@ -60,9 +60,11 @@ LOGUNIT_CLASS(TranscoderTestCase)
LOGUNIT_TEST(uencode3);
LOGUNIT_TEST(uencode5);
#endif
+#if LOG4CXX_LOGCHAR_IS_UTF8
LOGUNIT_TEST(encodeCharsetName1);
LOGUNIT_TEST(encodeCharsetName2);
- LOGUNIT_TEST(encodeCharsetName3);
+ LOGUNIT_TEST(encodeCharsetName3);
+#endif
LOGUNIT_TEST_SUITE_END();
@@ -305,13 +307,13 @@ public:
}
#endif
-
+#if LOG4CXX_LOGCHAR_IS_UTF8
void encodeCharsetName1() {
const logchar utf8[] = { 0x75, 0x74, 0x66, 0x2D, 0x38, 0x00 };
std::string
encoded(Transcoder::encodeCharsetName(LogString(utf8)));
LOGUNIT_ASSERT_EQUAL(std::string("utf-8"), encoded);
}
-
+
void encodeCharsetName2() {
logchar lascii[0x60];
char ascii[0x60];
@@ -333,6 +335,7 @@ public:
std::string
encoded(Transcoder::encodeCharsetName(LogString(unsupported)));
LOGUNIT_ASSERT_EQUAL(std::string("????"), encoded);
}
+#endif
};