Skip to content

Undefined reference to ber_pvt_opt_on when building wheel on Cygwin #172

@Lucas-C

Description

@Lucas-C

Issue description: I am not able to install python-ldap under Cygwin.

Steps to reproduce:

pip install python-ldap

Output:

  gcc -shared -Wl,--enable-auto-image-base -L. build/temp.cygwin-2.9.0-x86_64-2.7/Modules/LDAPObject.o build/temp.cygwin-2.9.0-x86_64-2.7/Modules/ldapcontrol.o build/temp.cygwin-2.9.0-x86_64-2.7/Modules/common.o build/temp.cygwin-2.9.0-x86_64-2.7/Modules/constants.o build/temp.cygwin-2.9.0-x86_64-2.7/Modules/errors.o build/temp.cygwin-2.9.0-x86_64-2.7/Modules/functions.o build/temp.cygwin-2.9.0-x86_64-2.7/Modules/ldapmodule.o build/temp.cygwin-2.9.0-x86_64-2.7/Modules/message.o build/temp.cygwin-2.9.0-x86_64-2.7/Modules/options.o build/temp.cygwin-2.9.0-x86_64-2.7/Modules/berval.o -L/usr/lib -L/usr/lib64 -L/usr/local/lib -L/usr/local/lib64 -L/home/lucas_cimon/.local/share/virtualenvs/infralib-py2/lib/python2.7/config -L/usr/lib -Wl,-R/usr/lib -Wl,-R/usr/lib64 -Wl,-R/usr/local/lib -Wl,-R/usr/local/lib64 -lldap_r -lpython2.7 -o build/lib.cygwin-2.9.0-x86_64-2.7/_ldap.dll
  build/temp.cygwin-2.9.0-x86_64-2.7/Modules/LDAPObject.o : Dans la fonction « l_ldap_result4 » :
  /tmp/pip-build-ipQUpM/python-ldap/Modules/LDAPObject.c:1022 : référence indéfinie vers « ber_bvfree »
  /tmp/pip-build-ipQUpM/python-ldap/Modules/LDAPObject.c:1022:(.text+0x763): relocalisation tronquée pour concorder avec la taille : R_X86_64_PC32 vers le symbole indéfini ber_bvfree
  build/temp.cygwin-2.9.0-x86_64-2.7/Modules/ldapcontrol.o : Dans la fonction « encode_rfc3876 » :
  /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:215 : référence indéfinie vers « ber_alloc_t »
  /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:215:(.text+0xc6): relocalisation tronquée pour concorder avec la taille : R_X86_64_PC32 vers le symbole indéfini ber_alloc_t
  /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:226 : référence indéfinie vers « ber_flatten »
  /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:226:(.text+0xed): relocalisation tronquée pour concorder avec la taille : R_X86_64_PC32 vers le symbole indéfini ber_flatten
  /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:233 : référence indéfinie vers « ber_bvfree »
  /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:233:(.text+0x109): relocalisation tronquée pour concorder avec la taille : R_X86_64_PC32 vers le symbole indéfini ber_bvfree                                                                                                                                                                    /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:237 : référence indéfinie vers « ber_free »                                                                         /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:237:(.text+0x116): relocalisation tronquée pour concorder avec la taille : R_X86_64_PC32 vers le symbole indéfini ber_free                                                                                                                                                                      build/temp.cygwin-2.9.0-x86_64-2.7/Modules/ldapcontrol.o : Dans la fonction « decode_rfc2696 » :                                                                            /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:316 : référence indéfinie vers « ber_init »                                                                         /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:316:(.text+0x188): relocalisation tronquée pour concorder avec la taille : R_X86_64_PC32 vers le symbole indéfini ber_init                                                                                                                                                                      /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:321 : référence indéfinie vers « ber_scanf »                                                                        /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:321:(.text+0x1a9): relocalisation tronquée pour concorder avec la taille : R_X86_64_PC32 vers le symbole indéfini ber_scanf
  /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:328 : référence indéfinie vers « ber_bvfree »
  /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:328:(.text+0x1d9): relocalisation tronquée pour concorder avec la taille : R_X86_64_PC32 vers le symbole indéfini ber_bvfree
  /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:332 : référence indéfinie vers « ber_free »
  /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:332:(.text+0x1e6): relocalisation tronquée pour concorder avec la taille : R_X86_64_PC32 vers le symbole indéfini ber_free
  build/temp.cygwin-2.9.0-x86_64-2.7/Modules/ldapcontrol.o : Dans la fonction « encode_rfc2696 » :
  /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:258 : référence indéfinie vers « ber_alloc_t »
  /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:258:(.text+0x258): relocalisation tronquée pour concorder avec la taille : R_X86_64_PC32 vers le symbole indéfini ber_alloc_t
  /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:263 : référence indéfinie vers « ber_printf »
  /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:263:(.text+0x278): débordement de relocalisation additionnelle omise à partir de la sortie
  /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:272 : référence indéfinie vers « ber_printf »
  /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:278 : référence indéfinie vers « ber_printf »
  /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:284 : référence indéfinie vers « ber_flatten »
  /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:290 : référence indéfinie vers « ber_bvfree »
  /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:294 : référence indéfinie vers « ber_free »
  /tmp/pip-build-ipQUpM/python-ldap/Modules/ldapcontrol.c:270 : référence indéfinie vers « ber_printf »
  build/temp.cygwin-2.9.0-x86_64-2.7/Modules/message.o : Dans la fonction « LDAPmessage_to_python » :
  /tmp/pip-build-ipQUpM/python-ldap/Modules/message.c:159 : référence indéfinie vers « ber_free »
  /tmp/pip-build-ipQUpM/python-ldap/Modules/message.c:133 : référence indéfinie vers « ber_free »
  /tmp/pip-build-ipQUpM/python-ldap/Modules/message.c:198 : référence indéfinie vers « ber_memvfree »
  /tmp/pip-build-ipQUpM/python-ldap/Modules/message.c:242 : référence indéfinie vers « ber_bvfree »
  /tmp/pip-build-ipQUpM/python-ldap/Modules/message.c:236 : référence indéfinie vers « ber_bvfree »
  build/temp.cygwin-2.9.0-x86_64-2.7/Modules/options.o:options.c:(.rdata$.refptr.ber_pvt_opt_on[.refptr.ber_pvt_opt_on]+0x0) : référence indéfinie vers « ber_pvt_opt_on »
  collect2: erreur : ld a retourné 1 code d'état d'exécution
  error: command 'gcc' failed with exit status 1

  ----------------------------------------
  Failed building wheel for python-ldap

The error messages are in French, but basically there are a lot of undefined references ("référence indéfinie")

Sometimes I'm used to apt install some extraneous "-devel" packages under Cygwin in order to please gcc during the wheels build. But it doesn't look like a "missing C header" error message.

Any idea what could be causing this ?
It seems to be a not-so-recent issue (2013)

Operating system: Cygwin on Windows 10:

$ uname -a
CYGWIN_NT-10.0 L-5CD7115LJ8 2.9.0(0.318/5/3) 2017-09-08 10:19 x86_64 Cygwin

Python version: 2.7.13

python-ldap version: 2.5.2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      pFad - Phonifier reborn

      Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

      Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


      Alternative Proxies:

      Alternative Proxy

      pFad Proxy

      pFad v3 Proxy

      pFad v4 Proxy