buglibffcall - foreign function call libraries - Bugs: bug #30124, --enable-shared build is broken

 
 

bug #30124: --enable-shared build is broken

Submitter:  Christoph Egger <christoph_egger>
Submitted:  Sun 13 Jun 2010 12:32:39 PM UTC
   
 
Category:  None Severity:  3 - Normal
Item Group:  build Status:  Fix Released
Privacy:  Public Assigned to:  haible
Open/Closed:  Closed
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Sun 10 Sep 2017 07:49:39 PM UTC, comment #10: 

In version 2.0, --enable-shared is now the default (except for libvacall).

Bruno Haible <haible>
Group administrator
Tue 03 Jan 2017 02:48:40 AM UTC, comment #9: 

A build with --enable-shared (of libavcall and libcallback) is now working, through

http://git.savannah.gnu.org/gitweb/?p=libffcall.git;a=commit;h=24b4a84a135250259ae3e0336dbdede0f2326def

http://git.savannah.gnu.org/gitweb/?p=libffcall.git;a=commit;h=3d13cc3d5b638d4d54ddeb21b759dddb5245ad1c

http://git.savannah.gnu.org/gitweb/?p=libffcall.git;a=commit;h=cb99e282fc978c77c4fb44d7965b331b89dd55ac

For libvacall and libtrampoline, there are no plans to support --enable-shared since these libraries rely on global variables, i.e. are more a "proof of concept" than something usable by real programs.

Bruno Haible <haible>
Group administrator
Wed 15 Feb 2012 05:16:53 PM UTC, comment #8: 

http://thread.gmane.org/gmane.comp.sysutils.autoconf.general/14289

options:
--- disable --enable-shared (i.e., configure should fail)
--- ignore --enable-shared by adding -static to LIBTOOL_LINK invocations as suggested in http://article.gmane.org/gmane.comp.sysutils.autoconf.general:14290

Sam Steingold <sds>
Group administrator
Tue 05 Apr 2011 03:28:54 PM UTC, comment #7: 

Christoph, do you have a patch for "shared libraries working"?

Sam Steingold <sds>
Group administrator
Sun 27 Jun 2010 06:50:15 PM UTC, comment #6: 

Seems I got a revision with shared libraries working. Thanks!

Christoph Egger <christoph_egger>
Mon 14 Jun 2010 04:34:29 PM UTC, comment #5: 

Well, wasn't me that started providing a shared library. Changing away to a statically linked version will at least need a rebuild of all the package -- something that'll take some time (but is of course doable)

Christoph Egger <christoph_egger>
Mon 14 Jun 2010 04:16:50 PM UTC, comment #4: 

see README in the cvs head for a detailed explanation of why --enable-shared is not a good idea.
to summarize, all distributions should be using "enable-static" only.
as for --enable-shared, http://www.cygwin.com/acronyms/#PTC

Sam Steingold <sds>
Group administrator
Mon 14 Jun 2010 03:53:43 PM UTC, comment #3: 

I understand that you do not want to make an exception, but here it is absolutely necessary. it makes no sense to build libffcall with --enable-shared. you are doing a disservice to you users.

Sam Steingold <sds>
Group administrator
Mon 14 Jun 2010 06:08:14 AM UTC, comment #2: 

Yep I'm building with --enable-shared -- that's the way the debian/ubuntu packages currently work and I'dlike to avoid switching to a static linked version

Christoph Egger <christoph_egger>
Mon 14 Jun 2010 02:47:53 AM UTC, comment #1: 

wfm. cvs head, configured on
Linux loiso 2.6.32-22-generic #36-Ubuntu SMP Thu Jun 3 22:02:19 UTC 2010 i686 GNU/Linux
with
$ ../configure -C

I think you are doing something awfully wrong since I see libcallback.so in your messages.
note that the libffcall libraries are small (most of the code is in the headers), it makes no sense to make them shared.
please do not.

Sam Steingold <sds>
Group administrator
Sun 13 Jun 2010 12:32:39 PM UTC, original submission:  

See output below. Thats CVS head

/bin/sh ./libtool --mode=link i486-linux-gnu-gcc -g -O2 -x none minitests.o libcallback.la -o minitests
i486-linux-gnu-gcc -g -O2 -x none minitests.o -o .libs/minitests  ./.libs/libcallback.so
minitests.o: In function `main':
/tmp/upstream/test/callback/./tests.c:855: undefined reference to `__vacall_r'
/tmp/upstream/test/callback/./tests.c:865: undefined reference to `__vacall_r'
/tmp/upstream/test/callback/./tests.c:874: undefined reference to `__vacall_r'
/tmp/upstream/test/callback/./tests.c:883: undefined reference to `__vacall_r'
/tmp/upstream/test/callback/./tests.c:892: undefined reference to `__vacall_r'
minitests.o:/tmp/upstream/test/callback/./tests.c:901: more undefined references to `__vacall_r' follow
collect2: ld returned 1 exit status
make[1]: * [minitests] Error 1
make[1]: Leaving directory `/tmp/upstream/test/callback'
make: * [check] Error 2

Christoph Egger <christoph_egger>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by haible (Posted a comment)
  • -email is unavailable- added by sds (Posted a comment)
  • -email is unavailable- added by christoph_egger (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 10 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2023-01-04 haible StatusFixed Fix Released
    2017-01-03 haible StatusNone Fixed
        Open/ClosedOpen Closed
    2010-06-14 sds StatusWorks For Me None
        Assigned tosds haible
        Open/ClosedClosed Open
        Summarymake ceck fails on i386 due to missing symbols --enable-shared build is broken
    2010-06-14 sds StatusNone Works For Me
        Assigned toNone sds
        Open/ClosedOpen Closed

    Back to the top

    Powered by Savane 3.13-3230.
    Corresponding source code