[tex-live] 64 bits version of TeX Live on Windows
Angelo Graziosi
angelo.graziosi at alice.it
Fri Jul 8 22:19:22 CEST 2016
Hi Vincent,
Il 07/07/2016 19:11, Vincent Torri ha scritto:
> On Thu, Jul 7, 2016 at 5:47 PM, Angelo Graziosi
> wrote:
>>
>> As you see, when building in libs/icu it switched to use clang/clang++..
>>
>> So after cleaning, I tried:
>>
>> CXX=g++ CC=gcc ./Build --build=x86_64-w64-mingw32
>>
>>
>> Now all things in libs seem built.. but then the build stops trying to build
>> xetex:
>>
>> [...]
>> C:/msys64/tmp/tlsrc/Work/libs/icu/icu-build/lib/libicudata.a: No such file
>> or directory
>
> I had that error once. it seems it has gone, don't know why. I'll
> anyway do another builld from scratch (removing msys2 and installing
> it again) to be sure it is working.
the ICU issues are fixed by patch below [*], created from a few patches
used by MSYS2 people
(https://github.com/Alexpux/MINGW-packages/tree/master/mingw-w64-icu).
After this, building TL with
CXX=g++ CC=gcc ./Build --build=x86_64-w64-mingw32
fails as you,
g++ -DHAVE_CONFIG_H -I. -I../../../texk/dvisvgm
-I../../../texk/dvisvgm/dvisvgm-src/clipper
-I../../../texk/dvisvgm/dvisvgm-src/src
-I../../../texk/dvisvgm/dvisvgm-src/xxHash -I/tmp/tlsrc/Work/texk
-I/tmp/tlsrc/texk -I/tmp/tlsrc/Work/libs/potrace/include
-I/tmp/tlsrc/Work/libs/freetype2/freetype2
-I/tmp/tlsrc/Work/libs/zlib/include -DTEXLIVEWIN32 -Wreturn-type
-Wno-unknown-pragmas -Wno-write-strings -g -O2 -MT
dvisvgm-src/src/BgColorSpecialHandler.o -MD -MP -MF $depbase.Tpo -c -o
dvisvgm-src/src/BgColorSpecialHandler.o
../../../texk/dvisvgm/dvisvgm-src/src/BgColorSpecialHandler.cpp &&\
mv -f $depbase.Tpo $depbase.Po
[...]In file included from
C:/msys64/mingw64/x86_64-w64-mingw32/include/pthread.h:66:0,
[...]
In file included from C:/msys64/mingw64/include/c++/5.4.0/string:39:0,
from ../../../texk/dvisvgm/dvisvgm-src/src/Color.h:24,
from
../../../texk/dvisvgm/dvisvgm-src/src/BgColorSpecialHandler.h:25,
from
../../../texk/dvisvgm/dvisvgm-src/src/BgColorSpecialHandler.cpp:23:
C:/msys64/mingw64/include/c++/5.4.0/bits/stringfwd.h:71:11: note:
declaration of 'std::__cxx11::string {aka class
std::__cxx11::basic_string<char>}'
class basic_string;
^
Ciao,
Angelo.
---
[*] The patch:
--------------------------------------------------------------------------------
--- icu/source/tools/genren/Makefile.orig 2011-08-10
14:03:08.000000000 +0200
+++ icu/source/tools/genren/Makefile 2016-07-08 15:19:09.162109300 +0200
@@ -30,12 +30,12 @@
include $(BUILDDIR)/icudefs.mk
endif
-COM=$(ICUDIR)/lib/libicuuc.$(SO)
-I18=$(ICUDIR)/lib/libicui18n.$(SO)
-LAY=$(ICUDIR)/lib/libicule.$(SO)
-LEX=$(ICUDIR)/lib/libiculx.$(SO)
+COM=$(ICUDIR)/bin/libicuuc.$(SO)
+I18=$(ICUDIR)/bin/libicui18n.$(SO)
+LAY=$(ICUDIR)/bin/libicule.$(SO)
+LEX=$(ICUDIR)/bin/libiculx.$(SO)
DAT=$(ICUDIR)/stubdata/libicudata.$(SO)
-UIO=$(ICUDIR)/lib/libicuio.$(SO)
+UIO=$(ICUDIR)/bin/libicuio.$(SO)
LIBS=$(COM) $(I18) $(LAY) $(LEX) $(UIO)
--- icu/source/config/mh-mingw64.orig 2016-03-27 19:16:39.000000000 +0200
+++ icu/source/config/mh-mingw64 2016-07-08 16:16:05.349609300 +0200
@@ -8,10 +8,6 @@
# This file is similar to mh-mingw
# Any changes made here may also need to be made in mh-mingw
-# We install sbin tools into the same bin directory because
-# pkgdata needs some of the tools in sbin, and we can't always depend on
-# icu-config working on Windows.
-sbindir=$(bindir)
## Commands to generate dependency files
GEN_DEPS.c= $(CC) -E -MM $(DEFS) $(CPPFLAGS)
@@ -44,8 +40,8 @@
LD_SOOPTIONS= -Wl,-Bsymbolic
## Commands to make a shared library
-SHLIB.c= $(CC) $(CFLAGS) $(LDFLAGS) -shared $(LD_SOOPTIONS)
-Wl,--enable-auto-import -Wl,--out-implib=$(dir $@)lib$(notdir
$(@:$(SO_TARGET_VERSION_MAJOR).$(SO)=))$(IMPORT_LIB_EXT)#M#
-SHLIB.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(LD_SOOPTIONS)
-Wl,--enable-auto-import -Wl,--out-implib=$(dir $@)lib$(notdir
$(@:$(SO_TARGET_VERSION_MAJOR).$(SO)=))$(IMPORT_LIB_EXT)#M#
+SHLIB.c= $(CC) $(CFLAGS) $(LDFLAGS) -shared $(LD_SOOPTIONS)
-Wl,--enable-auto-import -Wl,--out-implib=$(dir $@)$(notdir
$(@:$(SO_TARGET_VERSION_MAJOR).$(SO)=))$(IMPORT_LIB_EXT)#M#
+SHLIB.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(LD_SOOPTIONS)
-Wl,--enable-auto-import -Wl,--out-implib=$(dir $@)$(notdir
$(@:$(SO_TARGET_VERSION_MAJOR).$(SO)=))$(IMPORT_LIB_EXT)#M#
## Compiler switch to embed a runtime search path
LD_RPATH=
@@ -66,27 +62,28 @@
endif
# Static library prefix and file extension
-LIBSICU = lib$(LIBPREFIX)$(STATIC_PREFIX)$(ICUPREFIX)
+LIBSICU = $(LIBPREFIX)$(STATIC_PREFIX)$(ICUPREFIX)
A = a
## An import library is needed for z/OS and MSVC
IMPORT_LIB_EXT = .dll.a
-LIBPREFIX=
+LIBPREFIX=lib
# Change the stubnames so that poorly working FAT disks and
installation programs can work.
# This is also for backwards compatibility.
-DATA_STUBNAME = dt
-I18N_STUBNAME = in
-LIBICU = $(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)
+LIBICU = $(LIBPREFIX)$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)
+
+# The following is for Makefile.inc's use.
+ICULIBSUFFIX_VERSION = $(LIB_VERSION_MAJOR)
#SH### copied from Makefile.inc
#SH## for icu-config to test with
#SH#ICULIBS_COMMON_LIB_NAME="${LIBICU}${COMMON_STUBNAME}${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}.${SO}"
#SH#ICULIBS_COMMON_LIB_NAME_A="${LIBICU}${COMMON_STUBNAME}${ICULIBSUFFIX}.${A}"
-#SH#ICULIBS_DATA="-l$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)"
-#SH#ICULIBS_I18N="-l$(ICUPREFIX)$(I18N_STUBNAME)$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)"
+#SH#ICULIBS_DATA="-l$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)"
+#SH#ICULIBS_I18N="-l$(ICUPREFIX)$(I18N_STUBNAME)$(ICULIBSUFFIX)"
#SH#
#SH## ICULIBS is the set of libraries your application should link
#SH## with usually. Many applications will want to add ${ICULIBS_I18N}
as well.
@@ -94,11 +91,11 @@
# The #M# is used to delete lines for icu-config
# Current full path directory.
-#CURR_FULL_DIR=$(shell pwd -W)#M# for MSYS
-CURR_FULL_DIR?=$(subst \,/,$(shell cmd /c cd))#M# for Cygwin shell
+CURR_FULL_DIR=$(shell $(SHELL) -c "pwd -W")#M# for MSYS
+#CURR_FULL_DIR?=$(subst \,/,$(shell cmd /c cd))#M# for Cygwin shell
# Current full path directory for use in source code in a -D compiler
option.
-#CURR_SRCCODE_FULL_DIR=$(subst /,\\\\,$(shell pwd -W))#M# for MSYS
-CURR_SRCCODE_FULL_DIR=$(subst \,/,$(shell cmd /c cd))#M# for Cygwin shell
+CURR_SRCCODE_FULL_DIR=$(subst /,\\\\,$(shell $(SHELL) -c "pwd -W"))#M#
for MSYS
+#CURR_SRCCODE_FULL_DIR=$(subst \,/,$(shell cmd /c cd))#M# for Cygwin shell
## Compilation rules
%.$(STATIC_O): $(srcdir)/%.c
@@ -130,7 +127,7 @@
FINAL_SO_TARGET=$(basename $(SO_TARGET))$(SO_TARGET_VERSION_MAJOR).$(SO)
MIDDLE_SO_TARGET=$(FINAL_SO_TARGET)
-FINAL_IMPORT_LIB = $(dir $(SO_TARGET))lib$(notdir $(basename
$(SO_TARGET)))$(IMPORT_LIB_EXT)#M#
+FINAL_IMPORT_LIB = $(dir $(SO_TARGET))$(notdir $(basename
$(SO_TARGET)))$(IMPORT_LIB_EXT)#M#
IMPORT_LIB = $(FINAL_IMPORT_LIB)#M#
MIDDLE_IMPORT_LIB = $(FINAL_IMPORT_LIB)#M#
--- icu/source/tools/pkgdata/pkgdata.cpp.orig 2016-03-27
19:16:39.000000000 +0200
+++ icu/source/tools/pkgdata/pkgdata.cpp 2016-07-08
16:02:40.083984300 +0200
@@ -891,20 +891,9 @@
const char* FILE_EXTENSION_SEP = uprv_strlen(pkgDataFlags[SO_EXT])
== 0 ? "" : ".";
const char* FILE_SUFFIX = pkgDataFlags[LIB_EXT_ORDER][0] == '.' ?
"." : "";
-#if U_PLATFORM == U_PF_MINGW
- /* MinGW does not need the library prefix when building in dll
mode. */
- if (IN_DLL_MODE(mode)) {
- sprintf(libFileNames[LIB_FILE], "%s", libName);
- } else {
- sprintf(libFileNames[LIB_FILE], "%s%s",
- pkgDataFlags[LIBPREFIX],
- libName);
- }
-#else
sprintf(libFileNames[LIB_FILE], "%s%s",
pkgDataFlags[LIBPREFIX],
libName);
-#endif
if(o->verbose) {
fprintf(stdout, "# libFileName[LIB_FILE] = %s\n",
libFileNames[LIB_FILE]);
--- icu/source/tools/pkgdata/pkgtypes.h.orig 2012-03-22
10:50:28.000000000 +0100
+++ icu/source/tools/pkgdata/pkgtypes.h 2016-07-08 16:02:40.100585900 +0200
@@ -138,10 +138,10 @@
# ifndef UDATA_SO_SUFFIX
# define UDATA_SO_SUFFIX ".dll"
# endif
-# define LIB_PREFIX ""
-# define LIB_STATIC_PREFIX ""
-# define OBJ_SUFFIX ".obj"
-# define UDATA_LIB_SUFFIX ".lib"
+# define LIB_PREFIX "lib"
+# define LIB_STATIC_PREFIX "lib"
+# define OBJ_SUFFIX ".o"
+# define UDATA_LIB_SUFFIX ".a"
#elif U_PLATFORM == U_PF_CYGWIN
# define LIB_PREFIX "cyg"
--- icu/source/icudefs.mk.in.orig 2016-03-27 22:50:56.000000000 +0200
+++ icu/source/icudefs.mk.in 2016-07-08 16:10:23.023437500 +0200
@@ -262,18 +262,18 @@
USING_ICULEHB=no
ICULEHB_TRUE=#
ICULEHB_FALSE=
-ICULIBS_LE =
-l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(LAYOUT_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
+ICULIBS_LE =
-l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(LAYOUT_STUBNAME)$(ICULIBSUFFIX)
ICULE_CFLAGS=-I$(top_srcdir)
endif
# Just the libs.
-ICULIBS_DT =
-l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
-ICULIBS_UC =
-l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(COMMON_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
-ICULIBS_I18N =
-l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(I18N_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
-ICULIBS_LX =
-l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(LAYOUTEX_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
-ICULIBS_IO =
-l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(IO_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
-ICULIBS_CTESTFW =
-l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(CTESTFW_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
-ICULIBS_TOOLUTIL =
-l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(TOOLUTIL_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
+ICULIBS_DT =
-l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)
+ICULIBS_UC =
-l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(COMMON_STUBNAME)$(ICULIBSUFFIX)
+ICULIBS_I18N =
-l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(I18N_STUBNAME)$(ICULIBSUFFIX)
+ICULIBS_LX =
-l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(LAYOUTEX_STUBNAME)$(ICULIBSUFFIX)
+ICULIBS_IO =
-l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(IO_STUBNAME)$(ICULIBSUFFIX)
+ICULIBS_CTESTFW =
-l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(CTESTFW_STUBNAME)$(ICULIBSUFFIX)
+ICULIBS_TOOLUTIL =
-l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(TOOLUTIL_STUBNAME)$(ICULIBSUFFIX)
# Link commands to link to ICU libs
LLIBDIR = -L$(LIBDIR)
LSTUBDIR = -L$(top_builddir)/stubdata
--- icu/source/config/Makefile.inc.in.orig 2016-03-27
22:50:56.000000000 +0200
+++ icu/source/config/Makefile.inc.in 2016-07-08 16:21:19.580078100 +0200
@@ -106,15 +106,15 @@
# - $(ICULIBS_LAYOUT) - ICU layout library.
# - $(ICULIBS_ICUIO) - ICU stdio equivalent library
-ICULIBS_COMMON = -l$(ICUPREFIX)uc$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
-ICULIBS_DATA =
-l$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
-ICULIBS_I18N =
-l$(ICUPREFIX)$(I18N_STUBNAME)$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
-ICULIBS_TOOLUTIL = -l$(ICUPREFIX)tu$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
-ICULIBS_CTESTFW =
-l$(ICUPREFIX)ctestfw$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
-ICULIBS_ICUIO = -l$(ICUPREFIX)io$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
-ICULIBS_OBSOLETE =
-l$(ICUPREFIX)obsolete$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
-ICULIBS_LAYOUT = -l$(ICUPREFIX)le$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
-ICULIBS_LAYOUTEX = -l$(ICUPREFIX)lx$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
+ICULIBS_COMMON = -l$(ICUPREFIX)uc$(ICULIBSUFFIX)
+ICULIBS_DATA = -l$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)
+ICULIBS_I18N = -l$(ICUPREFIX)$(I18N_STUBNAME)$(ICULIBSUFFIX)
+ICULIBS_TOOLUTIL = -l$(ICUPREFIX)tu$(ICULIBSUFFIX)
+ICULIBS_CTESTFW = -l$(ICUPREFIX)ctestfw$(ICULIBSUFFIX)
+ICULIBS_ICUIO = -l$(ICUPREFIX)io$(ICULIBSUFFIX)
+ICULIBS_OBSOLETE = -l$(ICUPREFIX)obsolete$(ICULIBSUFFIX)
+ICULIBS_LAYOUT = -l$(ICUPREFIX)le$(ICULIBSUFFIX)
+ICULIBS_LAYOUTEX = -l$(ICUPREFIX)lx$(ICULIBSUFFIX)
ICULIBS_BASE = -L$(libdir)
# for icu-config to test with
----------------------------------------------------------------------
More information about the tex-live
mailing list