Web lists-archives.com

Re: [Mingw-users] Import libraries without DLL in GCC 5.3.0 distro




-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 25/04/16 19:08, ralph engels wrote:
> If built on linux with a crosscompiler targetting mingw using 
> --enable-vtable-verify the exports get built correctly.

Nope.  It just stops the entire build, stone dead:

libtool: compile:
 /home/keith/src/mingw/gcc-build/gcc-5.3.0-mingw32-cross/./gcc/xgcc
 -B/home/keith/src/mingw/gcc-build/gcc-5.3.0-mingw32-cross/./gcc/
 "-DPACKAGE_NAME=\"GNU Vtable Verification Runtime Library\""
 -DPACKAGE_TARNAME=\"libvtv\"
 -DPACKAGE_VERSION=\"1.0\"
 "-DPACKAGE_STRING=\"GNU Vtable Verification Runtime Library 1.0\""
 -DPACKAGE_BUGREPORT=\"\"
 -DPACKAGE_URL=\"http://www.gnu.org/software/libvtv/\";
 -DPACKAGE=\"libvtv\" -DVERSION=\"1.0\" -DSTDC_HEADERS=1
 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1
 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1
 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1
 -D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_GNU_SOURCE=1
 -D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DHAVE_DLFCN_H=1
 -DLT_OBJDIR=\".libs/\" -I. -I../../../src/gcc-5.3.0/libvtv
 -I../../../src/gcc-5.3.0/libvtv/../include -D_GNU_SOURCE
 -Wall -Wextra -fno-exceptions -I./../libstdc++-v3/include
 -I./../libstdc++-v3/include/mingw32
 -I../../../src/gcc-5.3.0/libvtv/../libstdc++-v3/libsupc++
 -Wl,-u_vtable_map_vars_start,-u_vtable_map_vars_end -g -O2 -MT
 vtv_rts.lo -MD -MP -MF .deps/vtv_rts.Tpo
 -c ../../../src/gcc-5.3.0/libvtv/vtv_rts.cc
 -DDLL_EXPORT -DPIC -o .libs/vtv_rts.o
../../../src/gcc-5.3.0/libvtv/vtv_rts.cc:126:22: fatal error:
 winternl.h: No such file or directory
compilation terminated.
make[4]: *** [vtv_rts.lo] Error 1

Given that Microsoft themselves say that <winternl.h> declares APIs
which are internal to Windows itself, are undocumented, and may not be
stable across Windows versions, I have no intention of pursuing any
solution for making this optional feature available; I will simply
build with '--disable-libvtv', per attached specification.

- -- 
Regards,
Keith.

Public key available from keys.gnupg.net
Key fingerprint: C19E C018 1547 DE50 E1D4 8F53 C0AD 36C6 347E 5A3F
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.20 (GNU/Linux)

iQIcBAEBAgAGBQJXH+5uAAoJEMCtNsY0flo/KxEQAMEDovK9mO5HKW71BYSLOFkN
au0wSX97piOWospECzay4kkQ75zmE+pVhp3VsyFOUw3VwLko9YpGSuZJwZqfiG59
GP1mLGTmPFaT4M+oTP9QlYLHWatV7jzYoUgvcD7rq+eoBoDGbjO1dg7b2yEaz6V/
RIDymgLCx0Ay47cXzKnGmhSmkG+OLeg8HxYMekVD44oxxa8E5mEEqCgt4eTQTipU
QfwOjX8SJjesZKdFIG/UL2/jd7jeTPToa6Z1XbzsVIS1h3WiMTpxC3Aot0ftv/dG
IxHyosBAfWfn1Ehb3J/Co6eYgvydXwgbg76V9Bgu81U4kj75EjUNSc3wokJ2nqhT
u2NMHqp6FuY5A6PePqVjaHRbZfadUp8taoR3PwApN7qC3OyySlhZrBlj99SxYK9Q
rDwFG4vFH4SpZ4LXjS8PCLfYK31y3mSM5ZZD0ObLO8X92nPcRxFdRrT+J1U+SqYS
Gnpbo4SMC/OOplj2XmUI8B1UcLLkDhT4xzWCpA3zG06AblzlNBW6TLsA5WNGeA+9
YKQaagNZsskEr8m2Ca+2Zo5mAYVtaIJTJ3XKIEXyNN021dm7YN2LYOeuMC3qf1n8
n/2ODEn0iDqEoXN6dWoJOExpwnFIN6CaRavhU/yxlnlEcEGfWkiJhxUZSPlsnTgT
kSrdHnfgZOAVm+7OGDjJ
=3vzy
-----END PGP SIGNATURE-----
# gcc-5.3.0-mingw32.pkgspec
#
# Package specification file -- automatically generated by mingw-pkg
#
# Package name and version must be explicitly specified; these appear
# as the initial part of the package name, as interpreted by mingw-get.
#
pkgname 	gcc
pkgversion	5.3.0

# Contributed by Keith Marshall <keithmarshall@xxxxxxxxxxxxxxxxxxxxx>
# Copyright (C) 2016, MinGW.org Project
#
# -----------------------------------------------------------------------------
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
# -----------------------------------------------------------------------------

# A release identifier is optional; if specified, it will be appended
# to the package name and version, delimited by an intervening hyphen.
#
pkgrelease 	2

# A system architecture identifier is required for any package which
# is to be delivered by mingw-get; it establishes the sub-system type
# identifier which will appear within the package name, following the
# package name, version and release identifiers.
#
arch		mingw32

# The pkgtype specification determines the packaging method to be used
# for all distributable component packages, and the final extension to
# be appended to the component package names.  The default is tar.gz;
# alternatives supported by mingw-get are tar.bz2, tar.lzma and tar.xz
#
pkgtype 	tar.xz

# Optional alias, title, and description specifications may be provided;
# these are used by 'mingw-pkg mkxml', to specify the associated entries
# in mingw-get's xml catalogue specification for this package.
#
# Each of these should be specified only once; 'aliases' is permitted as
# a synonym for 'alias', where the associated value is a space separated
# list of multiple alias names.
#
alias		gcc
title		"The GNU Compiler Collection"
description	"
A collection of packages, which together provide the GNU C Compiler, and
optionally, the GNU C++ Compiler, GNU Object-C Compiler, GNU Object-C++
Compiler, and GNU FORTRAN Compiler.
"

# An affiliate specification is also optional; it identifies a package
# category with which mingw-get will affiliate this package.  Unlike
# the alias, title, and description specifications, multiple affiliate
# specifications are permitted, allowing for affiliation of the package
# with multiple mingw-get categories.
#
affiliate	"MinGW Base System"

# Configuration options for GCC build
#
option		configure --prefix=/mingw
option		configure --disable-win32-registry
option		configure --target=$ARCH --with-arch=i586
option		configure --enable-languages=c,c++,objc,obj-c++,fortran,ada
option		configure --enable-static --enable-shared --enable-threads=posix
option		configure --with-dwarf2 --disable-sjlj-exceptions
option		configure --enable-version-specific-runtime-libs
option		configure --enable-libstdcxx-debug
option		configure --with-tune=generic
option		configure --enable-libgomp
option		configure --disable-libvtv
option		configure --enable-nls

# The distributable package inventory is established by means of a
# collection of component specifications; each is of the form:
#
#   component  keyword  "content"
#
#   where:
#     keyword	specifies the component package class name, as it
#		will be included in the mingw-get compatible package
#		archive name, immediately preceding the pkgtype.
#     content	specifies a white-space separated list of directory
#		and/or file path names, relative to the top of the
#		staging directory tree in which the distribution is
#		prepared, which are to be passed as argument list
#		to the archiving program, so defining the content
#		for the associated component package.
#
#
# Note that GCC's "make install-strip" rule-set is broken with respect
# to libobjc; thus we override the mingw-pkg default installation option,
# to use "make install" instead.  This means that the distribution will
# be unstripped, unless we pre-stage and manually strip.
#
option		install		install

# We must also note that GCC's "make install-info" rule-set is utterly
# broken -- it installs nothing pertinent, many requisite *.info files
# are missing from the distribution, (in violation of the GNU Coding
# Standards), and the makefile rules are unable to find those which are
# distributed.  Thus, we provide the following functions, to perform
# our own staged installation of the few which are distributed.
#
stage_source_files(){
#
# Scavenge within the staged source tree, for specified files; for those
# which are found, copy them to an appropriate location within the staged
# installation tree.
#
  if test -d dist/staged/$PACKAGE-$VERSION
  then for file
    do store_staged_file `find dist/staged/$PACKAGE-$VERSION -name $file` $file
    done
  fi
}
store_staged_file(){
#
# Helper function, used by stage_source_files(), to copy files from the
# staged source tree to the staged installation tree.
#
  if test $# -eq 2; then
    mkdir -p dist/staged/$staging_dir
    test -f dist/staged/$staging_dir/$2 || cp $1 dist/staged/$staging_dir
    test -f dist/staged/$staging_dir/$2 && echo $staging_dir/$2
  fi
}

# We like to distribute a licence package, which doesn't conform to any
# requirement of the GNU Coding Standards, and isn't directly supported
# by the GCC build infrastructure.  Thus, we provide our own function,
# scavenge for licence files within the staged source tree.
#
abs_builddir=`pwd`
abs_srcdir=$abs_builddir/dist/staged/$PACKAGE-$VERSION
select_source_wildcard_matches(){
  if test -d $abs_srcdir; then
    for pattern; do find $abs_srcdir -name "$pattern"; done
  fi
}
component  lic "
  --transform=s,$abs_srcdir,share/doc/$PACKAGE/$VERSION,
  `select_source_wildcard_matches 'COPYING*' 'LICEN[CS]E*'`
  --exclude=go --exclude=libgo --exclude=libiberty --exclude=libjava
  --exclude=libffi --exclude=libquadmath --exclude=libsanitizer
  --exclude=$PACKAGE-$VERSION/gcc --exclude=include
  --transform=s,/contrib/dotzlib,,
"
component  lang "
  share/locale/*/LC_MESSAGES
"
component  man "
  --exclude=share/man/man1/g++.1
  --exclude=share/man/man1/gfortran.1
  share/man
"
component  info "
  `staging_dir=share/info stage_source_files cpp.info gcc.info`
"

subpackage gcc-core
component  bin "
  bin/*.exe
  --exclude=bin/*[cg]++*.exe
  --exclude=bin/*fortran.exe
  --exclude=bin/gnat*.exe
  libexec/$PACKAGE/$ARCH/$VERSION/*.exe
  --exclude=libexec/$PACKAGE/$ARCH/$VERSION/cc1plus.exe
  --exclude=libexec/$PACKAGE/$ARCH/$VERSION/cc1obj*.exe
  --exclude=libexec/$PACKAGE/$ARCH/$VERSION/f951.exe
  --exclude=libexec/$PACKAGE/$ARCH/$VERSION/gnat1.exe
  libexec/$PACKAGE/$ARCH/$VERSION/install-tools
  libexec/$PACKAGE/$ARCH/$VERSION/*_plugin*
  lib/$PACKAGE/$ARCH/$VERSION/include
  --exclude=lib/$PACKAGE/$ARCH/$VERSION/include/c++
  --exclude=lib/$PACKAGE/$ARCH/$VERSION/include/objc
  lib/$PACKAGE/$ARCH/$VERSION/include-fixed
  --exclude=lib/$PACKAGE/$ARCH/$VERSION/libs??c++.*
  --exclude=lib/$PACKAGE/$ARCH/$VERSION/libgfortran*
  --exclude=lib/$PACKAGE/$ARCH/$VERSION/libobjc*.a
  lib/$PACKAGE/$ARCH/$VERSION/*.[oa]
  --exclude=*.la
"

subpackage libgcc
component  dll-1 "
  --transform=s,.*/,bin/,
  lib/$PACKAGE/$ARCH/libgcc_s_dw2-1.dll
"

subpackage libatomic
component  dll-1 "
  bin/libatomic-1.dll
"

subpackage gcc-g++
component  bin "
  bin/*[cg]++*.exe
  libexec/$PACKAGE/$ARCH/$VERSION/cc1plus.exe
  lib/$PACKAGE/$ARCH/$VERSION/debug
  lib/$PACKAGE/$ARCH/$VERSION/include/c++
  lib/$PACKAGE/$ARCH/$VERSION/libs??c++.*
  share/$PACKAGE-$VERSION/python
  --exclude=*.la
"
component  man "
  share/man/man1/g++.1
"

subpackage libstdc++
component  dll-6 "
  bin/libstdc++-6.dll
"

subpackage gcc-ada
component  bin "
  bin/gnat*.exe
  libexec/$PACKAGE/$ARCH/$VERSION/gnat1.exe
  lib/$PACKAGE/$ARCH/$VERSION/ada*
"

subpackage gcc-fortran
component  bin "
  bin/*fortran.exe
  libexec/$PACKAGE/$ARCH/$VERSION/f951.exe
  lib/$PACKAGE/$ARCH/$VERSION/finclude
  lib/$PACKAGE/$ARCH/$VERSION/libgfortran.*
  --exclude=*.la
"
component  info "
  `staging_dir=share/info stage_source_files gfortran.info`
"

subpackage libgfortran
component  dll-3 "
  bin/libgfortran-3.dll
"
component  man "
  share/man/man1/gfortran.1
"

subpackage gcc-objc
component  bin "
  libexec/$PACKAGE/$ARCH/$VERSION/cc1obj*.exe
  lib/$PACKAGE/$ARCH/$VERSION/include/objc
  lib/$PACKAGE/$ARCH/$VERSION/libobjc*.a
"

subpackage libobjc
component  dll-4 "
  bin/libobjc-4.dll
"

subpackage libquadmath
component  dll-0 "
  bin/libquadmath-0.dll
"
component  info "
  share/info/libquadmath.info
"

subpackage libgomp
component  dll-1 "
  bin/libgomp-1.dll
"
component  info "
  share/info/libgomp.info
"

subpackage libssp
component  dll-0 "
  bin/libssp-0.dll
"

subpackage libiberty-gcc
component  dev "
  --transform=s,$abs_srcdir/*,,
  --transform=s,$abs_builddir/libiberty,lib,
  $abs_builddir/libiberty/libiberty.a
  $abs_srcdir/include/libiberty.h
"
# gcc-5.3.0-mingw32.pkgspec: end of file
------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
MinGW-users mailing list
MinGW-users@xxxxxxxxxxxxxxxxxxxxx

This list observes the Etiquette found at 
http://www.mingw.org/Mailing_Lists.
We ask that you be polite and do the same.  Disregard for the list etiquette may cause your account to be moderated.

_______________________________________________
You may change your MinGW Account Options or unsubscribe at:
https://lists.sourceforge.net/lists/listinfo/mingw-users
Also: mailto:mingw-users-request@xxxxxxxxxxxxxxxxxxxxx?subject=unsubscribe