Bill Hart wrote:
I don't know how to fix that.
The line in question is:
.section .data.rel.ro.local,"aw",@progbits
Ahem, that's an *ELF* section name (along with its attributes)...
It is complaining that .data.rel.ro.local is too long.
Yeah, we're on Darwin, and Mach-O section names are limited to 16
characters.
The section name declaration comes from JUMPTABSECT, which is hardcoded
(btw. twice; same for JMPENT) into mpn/x86_64/x86_64-defs.m4; and
unfortunately there's no macho.m4 / darwin.m4 or elf.m4 at all in that
folder.
If I
--- config.m4.orig 2014-04-05 17:06:55.000000000 -0700
+++ config.m4 2014-04-05 17:07:49.000000000 -0700
@@ -28,6 +28,7 @@
ifdef(`__CONFIG_M4_INCLUDED__',,`
include(CONFIG_TOP_SRCDIR`/mpn/asm-defs.m4')
include_mpn(`x86_64/x86_64-defs.m4')
+define(`JUMPTABSECT',RODATA)
define_not_for_expansion(`HAVE_ABI_64')
define_not_for_expansion(`HAVE_LIMB_LITTLE_ENDIAN')
define_not_for_expansion(`HAVE_DOUBLE_IEEE_LITTLE_ENDIAN')
'make' succeeds and all tests pass (with both Apple's GCC 4.2.1 as well
as FSF's GCC 4.7.3).
(RODATA gets defined by 'configure', and here expands to '.text'.)
So you'd have to weave that into 'configure', either by [re]defining
JUMPTABSECT (on Darwin x86_64) directly there, or defining some macro
telling m4 that we're on Darwin, and ifdef'ing in x86_64-defs.m4 (also
removing the redundant second definition ;-) ). Or let 'configure'
include some mpn/x86_64/darwin.m4 (optionally also some elf.m4 on ELF
systems), and properly define the platform-dependent macros there. (Or
just define DARWIN in darwin.m4, again letting 'configure' include it,
and special-case on that macro in the generic x86_64-defs.m4.)
Sorry, I'm not going to mess with autotools right now. It's usually
already an adventure to find out which versions of autoconf, automake
and libtool an upstream project currently uses, and to flawlessly bring
them into place, in order to minimize the patches to their generated files.
Unfortunately .data.rel.ro.local is part of the assembler/linker syntax
to prevent certain kinds of memory corruption. It seems when they came
up with this syntax, they forgot to check that it was actually supported
by past versions of their assembler!
It probably should be reported as a bug to the binutils people, since it
is going to stop a lot of code compiling on Macs. The linker hint should
have been chosen with a shorter name.
Well, if at all, to Apple... B)
-leif
On 5 April 2014 23:14, leif <not.rea...@online.de
<mailto:not.rea...@online.de>> wrote:
On 05.04.2014 02:55, Bill Hart wrote:
Hi all,
I have put tarballs up on our website (http://mpir.org) for
MPIR-2.7.0-alpha1.
As this release contains rather a lot of new code and speedups, we'd
like to have it tested as widely as possible.
We welcome build/test reports (positive and negative) either
here or on
our mpir-devel Google Group.
MacOS X 10.6.8 (Darwin 10), Apple GCC 4.2.1, x86_64:
/bin/sh ../libtool --mode=compile --tag=CC
../../mpir-2.7.0-alpha2/mpn/__m4-ccas --m4="m4" gcc -std=gnu99 -c
-DHAVE_CONFIG_H -m64 -O2 -march=core2 -mtune=core2
-D__GMP_WITHIN_GMP -I../../mpir-2.7.0-alpha2 -DOPERATION_`echo
sqr_basecase | sed 's/_$//'` -I. -I../../mpir-2.7.0-alpha2/mpn -I..
`test -f 'sqr_basecase.asm' || echo
'../../mpir-2.7.0-alpha2/mpn/'__`sqr_basecase.asm
libtool: compile: ../../mpir-2.7.0-alpha2/mpn/__m4-ccas --m4=m4 gcc
-std=gnu99 -c -DHAVE_CONFIG_H -m64 -O2 -march=core2 -mtune=core2
-D__GMP_WITHIN_GMP -I../../mpir-2.7.0-alpha2
-DOPERATION_sqr_basecase -I. -I../../mpir-2.7.0-alpha2/mpn -I..
sqr_basecase.asm -fno-common -DPIC -o .libs/sqr_basecase.o
m4 -DHAVE_CONFIG_H -D__GMP_WITHIN_GMP -DOPERATION_sqr_basecase
-DPIC sqr_basecase.asm >tmp-sqr_basecase.s
gcc -std=gnu99 -c -DHAVE_CONFIG_H -m64 -O2 -march=core2
-mtune=core2 -D__GMP_WITHIN_GMP -I../../mpir-2.7.0-alpha2
-DOPERATION_sqr_basecase -I. -I../../mpir-2.7.0-alpha2/mpn -I..
tmp-sqr_basecase.s -fno-common -DPIC -o .libs/sqr_basecase.o
tmp-sqr_basecase.s:136:__segment-name: .data.rel.ro.local too long
(maximum 16 characters)
tmp-sqr_basecase.s:136:Rest of line ignored. 1st junk character
valued 64 (@).
make[2]: *** [sqr_basecase.lo] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
$ as -v
Apple Inc version cctools-795~45, GNU assembler version 1.38
$ ../mpir-2.7.0-alpha2/config.__guess
westmere-apple-darwin10.8.0
$ grep -A6 '^using' configure.1.log
using ABI="64"
CC="gcc -std=gnu99"
CFLAGS="-m64 -O2 -march=core2 -mtune=core2"
CPPFLAGS=""
CXX="g++"
CXXFLAGS="-m64 -O2 -march=core2 -mtune=core2"
MPN_PATH=" x86_64/nehalem/westmere x86_64/nehalem x86_64 generic"
(This is bsd.math at UW; [vanilla] MPIR 2.6.0 passed 'make check'
(without --enable-cxx) with this configuration.)
-leif
P.S.: I think this one during yasm's 'configure' is rather harmless:
...
checking for _stricmp... no
checking for strcmpi... no
checking whether NLS is requested... yes
checking for msgfmt... no
checking for gmsgfmt... :
checking for xgettext... ../../mpir-2.7.0-alpha2/yasm/__configure:
line 5907: 18685 Trace/BPT trap $ac_dir/$ac_word
--omit-header --copyright-holder= --msgid-bugs-address= /dev/null
1>&5 2>&1
no
checking for msgmerge... no
checking build system type... x86_64-apple-darwin10.8.0
checking host system type... x86_64-apple-darwin10.8.0
checking for ld used by GCC...
/usr/libexec/gcc/i686-apple-__darwin10/4.2.1/ld
...
--
() The ASCII Ribbon Campaign
/\ Help Cure HTML E-Mail
--
You received this message because you are subscribed to the Google Groups
"mpir-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to mpir-devel+unsubscr...@googlegroups.com.
To post to this group, send email to mpir-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/mpir-devel.
For more options, visit https://groups.google.com/d/optout.