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.

Reply via email to