Changeset 99b54a in git


Ignore:
Timestamp:
Jul 10, 2013, 11:49:09 PM (10 years ago)
Author:
Oleksandr Motsak <motsak@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'a800fe4b3e9d37a38c5a10cc0ae9dfa0c15a4ee6')
Children:
bc2aed6a87c90a5858f5c011fa0ade08053dcac5
Parents:
ea5f3f6ec425ba64388b5f649fd56fcc93a4cd8d
git-author:
Oleksandr Motsak <motsak@mathematik.uni-kl.de>2013-07-10 23:49:09+02:00
git-committer:
Oleksandr Motsak <motsak@mathematik.uni-kl.de>2013-07-11 01:05:35+02:00
Message:
Fixing static use of _dynamic_ modules as built-ins + dynamic loading / OS X

add/fix: linked-in static "dynamic" modules: pyobject + syzextra
fix: fixed static building of Singular
fix: adaptation for static embedding of syzextra

add: added '-flat_namespace -weak_reference_mismatches weak -undefined dynamic_lookup' due to Mac OS X
ps: -export-dynamic -avoid-version
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • Singular/Makefile.am

    rea5f3f6 r99b54a  
    1717#
    1818
    19 AM_CPPFLAGS = -I${top_srcdir} -I${top_builddir} -I${top_srcdir}/numeric -I${top_builddir}/numeric -I${top_srcdir}/kernel -I${top_builddir}/kernel -I${top_srcdir}/libpolys -I${top_builddir}/libpolys $(GMP_CFLAGS) -I${top_srcdir}/factory/include -I${top_builddir}/factory/include $(FACTORY_CFLAGS) $(NTL_CFLAGS) $(FLINT_CFLAGS) ${EMBED_PYOBJECT_CFLAGS} -DHAVE_CONFIG_H
     19
     20if ENABLE_FACTORY
     21  USE_FACTORY = -L${top_builddir}/factory
     22else
     23  USE_FACTORY =
     24endif
     25
     26AM_CPPFLAGS = -I${top_srcdir} -I${top_builddir} -I${top_srcdir}/numeric -I${top_builddir}/numeric -I${top_srcdir}/kernel -I${top_builddir}/kernel -I${top_srcdir}/libpolys -I${top_builddir}/libpolys $(GMP_CFLAGS) -I${top_srcdir}/factory/include -I${top_builddir}/factory/include $(FACTORY_CFLAGS) $(NTL_CFLAGS) $(FLINT_CFLAGS) -DHAVE_CONFIG_H
     27AMLDFLAGS = -L${top_builddir}/Singular -L${top_builddir}/numeric -L${top_builddir}/kernel -L${top_builddir}/libpolys/polys  -L${top_builddir}/libpolys/coeffs -L${top_builddir}/libpolys/reporter -L${top_builddir}/libpolys/misc $(USE_FACTORY) -L${top_builddir}/omalloc -L${top_builddir}/resources
     28
     29########################### Dynamic Modules... #########################
     30if ENABLE_P_PROCS_DYNAMIC
     31  moduledir = $(libexecdir)/singular/MOD
     32else !ENABLE_P_PROCS_DYNAMIC
     33  moduledir = $(libdir)/singular
     34endif !ENABLE_P_PROCS_DYNAMIC
     35
     36if PYTHON_USE
     37  PY=pyobject.la
     38else !PYTHON_USE
     39  PY=
     40endif !PYTHON_USE
     41
     42if SI_EMBED_PYTHON
     43  EMBED_PYOBJECT = ${PY} ${top_builddir}/dyn_modules/syzextra/syzextra.la
     44else !SI_EMBED_PYTHON
     45  EMBED_PYOBJECT =
     46endif !SI_EMBED_PYTHON
     47
     48##########################################################################
     49module_LTLIBRARIES = pyobject.la
     50
     51pyobject_la_SOURCES = pyobject.cc
     52
     53# pyobject_la_CPPFLAGS   = ${AM_CPPFLAGS} ${NODEBUGDEFS}
     54# pyobject_g_la_CPPFLAGS = ${AM_CPPFLAGS}
     55
     56pyobject_la_CXXFLAGS = @PYTHON_CSPEC@
     57pyobject_la_CFLAGS   = @PYTHON_CSPEC@
     58
     59# ${NODEBUGCXXFLAGS}
     60# pyobject_g_la_CXXFLAGS = ${DEBUGCXXFLAGS} @PYTHON_CSPEC@
     61
     62pyobject_la_LDFLAGS = ${AMLDFLAGS} @PYTHON_LSPEC@ -module -export-dynamic -avoid-version -flat_namespace -weak_reference_mismatches weak -undefined dynamic_lookup
     63###  -export-dynamic -shared -module -avoid-version (add to all DMs?)
     64
    2065
    2166########################### libSingular* #########################
     
    101146#   links/slInit_Dynamic.cc
    102147
    103 libSingular_la_SOURCES   = $(SOURCES) feOpt.inc
    104 # libSingular_g_la_SOURCES = $(SOURCES) feOpt.inc
     148libSingular_la_SOURCES   = $(SOURCES)
     149# libSingular_g_la_SOURCES = $(SOURCES)
    105150
    106151SingularHEADERS =    Cache.h \
     
    164209
    165210# plural_cmd.inc
    166 nodist_libSingular_la_SOURCES = iparith.inc
     211nodist_libSingular_la_SOURCES = feOpt.inc iparith.inc ${EMBED_PYOBJECT}
    167212# nodist_libSingular_g_la_SOURCES = iparith.inc
    168213
    169 libSingular_la_LDFLAGS    = -release ${PACKAGE_VERSION}
     214libSingular_la_LDFLAGS    =  -release ${PACKAGE_VERSION} ${AMLDFLAGS} ${EMBED_PYOBJECT} \
     215-lnumeric -lkernel -lpolys -lcoeffs -lreporter -lmisc \
     216$(FACTORY_LIBS) -lomalloc -lresources $(FLINT_LIBS) $(NTL_LIBS) $(GMP_LIBS) ${USEPPROCSDYNAMICLDFLAGS} ${USEPPROCSDYNAMICLD}
     217
     218libSingular_la_LIBADD      = ${EMBED_PYOBJECT} \
     219-lnumeric -lkernel -lpolys -lcoeffs -lreporter -lmisc \
     220$(FACTORY_LIBS) -lomalloc -lresources $(FLINT_LIBS) $(NTL_LIBS) $(GMP_LIBS) ${USEPPROCSDYNAMICLDFLAGS} ${USEPPROCSDYNAMICLD}
     221
     222# ${top_builddir}/numeric/libnumeric.la ${top_builddir}/kernel/libkernel.la ${top_builddir}/libpolys/polys/libpolys.la
     223
     224
    170225
    171226libSingular_includedir = ${includedir}/singular/Singular/
    172227nobase_libSingular_include_HEADERS = $(SingularHEADERS)
    173 
    174 if ENABLE_FACTORY
    175   USE_FACTORY = -L${top_builddir}/factory
    176 else
    177   USE_FACTORY =
    178 endif
    179228
    180229#########################################################
     
    220269Singular ESingular TSingular $(optional_Singular_programs): ${abs_builddir}/LIB
    221270
    222 AMLDFLAGS = -L${top_builddir}/Singular -L${top_builddir}/numeric -L${top_builddir}/kernel -L${top_builddir}/libpolys/polys  -L${top_builddir}/libpolys/coeffs -L${top_builddir}/libpolys/reporter -L${top_builddir}/libpolys/misc $(USE_FACTORY) -L${top_builddir}/omalloc -L${top_builddir}/resources
    223 
    224271# Singular_CFLAGS = -O3 -fomit-frame-pointer ${PIPE}
    225272# Singularg_CFLAGS = -g ${PIPE}
     
    234281# Singularg_SOURCES = tesths.cc fegetopt.c fegetopt.h utils.cc  utils.h
    235282
    236 Singular_LDADD = libSingular.la ${top_builddir}/numeric/libnumeric.la ${top_builddir}/kernel/libkernel.la ${top_builddir}/libpolys/polys/libpolys.la -lcoeffs -lreporter -lmisc $(FACTORY_LIBS) -lomalloc -lresources $(FLINT_LIBS) $(NTL_LIBS) $(GMP_LIBS) ${USEPPROCSDYNAMICLDFLAGS} ${USEPPROCSDYNAMICLD} ${EMBED_PYOBJECT_LDFLAGS}
     283Singular_LDADD = libSingular.la
     284
    237285# Singularg_LDADD = libSingular_g.la ${top_builddir}/numeric/libnumeric_g.la ${top_builddir}/kernel/libkernel_g.la ${top_builddir}/libpolys/polys/libpolys_g.la -lcoeffs_g -lreporter_g -lmisc_g $(FACTORY_LIBS) -lomalloc_g -lresources_g $(FLINT_LIBS) $(NTL_LIBS) $(GMP_LIBS) ${USEPPROCSDYNAMICLDFLAGS}  ${USEPPROCSDYNAMICLD} ${EMBED_PYOBJECT_LDFLAGS}
    238286
     
    257305# nodist_Singulardg_SOURCES =  libSingular_g.la
    258306
    259 Singulard_LDADD = libSingular.la -lnumeric -lkernel -lpolys -lcoeffs -lreporter -lmisc $(FACTORY_LIBS) -lomalloc -lresources $(FLINT_LIBS) $(NTL_LIBS) $(GMP_LIBS) ${USEPPROCSDYNAMICLDFLAGS} ${USEPPROCSDYNAMICLD} ${EMBED_PYOBJECT_LDFLAGS}
     307#  ${EMBED_PYOBJECT_LDFLAGS}  ${EMBED_PYOBJECT_LDFLAGS}
     308Singulard_LDADD = libSingular.la
     309
    260310# Singulardg_LDADD = libSingular_g.la -lnumeric_g -lkernel_g -lpolys_g -lcoeffs_g -lreporter_g -lmisc_g $(FACTORY_LIBS) -lomalloc_g -lresources_g $(FLINT_LIBS) $(NTL_LIBS) $(GMP_LIBS) ${USEPPROCSDYNAMICLDFLAGS}  ${USEPPROCSDYNAMICLD} ${EMBED_PYOBJECT_LDFLAGS}
    261311
     
    351401test_s_r_SOURCES = test.cc
    352402#test_s_g_SOURCES = test.cc
    353 
    354 test_s_r_LDADD = libSingular.la -lnumeric -lkernel -lpolys -lcoeffs -lreporter -lmisc $(FACTORY_LIBS) -lomalloc -lresources $(FLINT_LIBS) $(NTL_LIBS) $(GMP_LIBS) ${USEPPROCSDYNAMICLDFLAGS} ${USEPPROCSDYNAMICLD} ${EMBED_PYOBJECT_LDFLAGS}
    355 #test_s_g_LDADD = libSingular_g.la -lnumeric_g -lkernel_g -lpolys_g -lcoeffs_g -lreporter_g -lmisc_g $(FACTORY_LIBS) -lomalloc_g -lresources_g $(FLINT_LIBS) $(NTL_LIBS) $(GMP_LIBS) ${USEPPROCSDYNAMICLDFLAGS}  ${USEPPROCSDYNAMICLD} ${EMBED_PYOBJECT_LDFLAGS}
     403# ${EMBED_PYOBJECT_LDFLAGS}
     404test_s_r_LDADD = libSingular.la
     405
     406#-lnumeric -lkernel -lpolys -lcoeffs \
     407#-lreporter -lmisc $(FACTORY_LIBS) -lomalloc -lresources $(FLINT_LIBS) \
     408#$(NTL_LIBS) $(GMP_LIBS) ${USEPPROCSDYNAMICLDFLAGS} ${USEPPROCSDYNAMICLD} \
     409#${EMBED_PYOBJECT}
     410
     411#test_s_g_LDADD = libSingular_g.la
     412#-lnumeric_g -lkernel_g -lpolys_g \
     413#-lcoeffs_g -lreporter_g -lmisc_g $(FACTORY_LIBS) -lomalloc_g \
     414#-lresources_g $(FLINT_LIBS) $(NTL_LIBS) $(GMP_LIBS) \
     415#${USEPPROCSDYNAMICLDFLAGS}  ${USEPPROCSDYNAMICLD} \
     416#${EMBED_PYOBJECT}
     417
    356418
    357419# test_s_r_CPPFLAGS = ${AM_CPPFLAGS} -DHAVE_CONFIG_H
     
    373435test_d_r_SOURCES = test.cc
    374436# test_d_g_SOURCES = test.cc
    375 
    376 test_d_r_LDADD = libSingular.la -lnumeric -lkernel -lpolys -lcoeffs -lreporter -lmisc $(FACTORY_LIBS) -lomalloc -lresources $(FLINT_LIBS) $(NTL_LIBS) $(GMP_LIBS) ${USEPPROCSDYNAMICLDFLAGS} ${USEPPROCSDYNAMICLD} ${EMBED_PYOBJECT_LDFLAGS}
     437#  ${EMBED_PYOBJECT_LDFLAGS}
     438test_d_r_LDADD = libSingular.la
     439# -lnumeric -lkernel -lpolys -lcoeffs -lreporter -lmisc $(FACTORY_LIBS) -lomalloc -lresources $(FLINT_LIBS) $(NTL_LIBS) $(GMP_LIBS) ${USEPPROCSDYNAMICLDFLAGS} ${USEPPROCSDYNAMICLD}
    377440# test_d_g_LDADD = libSingular_g.la -lnumeric_g -lkernel_g -lpolys_g -lcoeffs_g -lreporter_g -lmisc_g $(FACTORY_LIBS) -lomalloc_g -lresources_g $(FLINT_LIBS) $(NTL_LIBS) $(GMP_LIBS) ${USEPPROCSDYNAMICLDFLAGS}  ${USEPPROCSDYNAMICLD} ${EMBED_PYOBJECT_LDFLAGS}
    378441
     
    381444# test_d_g_CPPFLAGS = ${AM_CPPFLAGS} -DHAVE_CONFIG_H
    382445
    383 test_d_r_LDFLAGS = ${AMLDFLAGS}
     446#test_d_r_LDFLAGS = ${AMLDFLAGS}
    384447# test_d_g_LDFLAGS = ${AMLDFLAGS}
    385448
     
    424487        ln -snf ${top_builddir}/libpolys/polys/.libs/ ${builddir}/MOD
    425488
    426 moduledir = $(libexecdir)/singular/MOD
    427 
    428 module_LTLIBRARIES =
    429 
    430 if ENABLE_P_PROCS_DYNAMIC
    431 if PYTHON_MODULE
    432 module_LTLIBRARIES += pyobject.la
    433 endif
    434 endif
    435 
    436 pyobject_la_SOURCES = pyobject.cc
    437 # pyobject_la_CPPFLAGS   = ${AM_CPPFLAGS} ${NODEBUGDEFS}
    438 # pyobject_g_la_CPPFLAGS = ${AM_CPPFLAGS}
    439 
    440 pyobject_la_CXXFLAGS   = @PYTHON_CSPEC@
    441 # ${NODEBUGCXXFLAGS}
    442 # pyobject_g_la_CXXFLAGS = ${DEBUGCXXFLAGS} @PYTHON_CSPEC@
    443 
    444 pyobject_la_LDFLAGS = -export-dynamic -shared -module -avoid-version ${AMLDFLAGS} @PYTHON_LSPEC@
    445 ###  -export-dynamic -shared -module -avoid-version (add to all DMs?)
  • configure.ac

    rea5f3f6 r99b54a  
    163163AC_CONFIG_FILES([kernel/Makefile])
    164164AC_CONFIG_FILES([numeric/Makefile])
    165 AC_CONFIG_FILES([Singular/Makefile])
     165
     166AC_CONFIG_SUBDIRS([gfanlib])
     167
    166168AC_CONFIG_FILES([dyn_modules/Makefile])
    167169AC_CONFIG_FILES([dyn_modules/bigintm/Makefile])
    168170AC_CONFIG_FILES([dyn_modules/syzextra/Makefile])
    169171AC_CONFIG_FILES([dyn_modules/callgfanlib/Makefile])
     172
     173AC_CONFIG_FILES([Singular/Makefile])
     174
    170175AC_CONFIG_FILES([IntegerProgramming/Makefile])
    171 AC_CONFIG_FILES([libsingular-config])
    172 
    173 AC_CONFIG_SUBDIRS([gfanlib])
    174176
    175177AC_CONFIG_FILES([redhat/singular.spec])
    176178# AC_CONFIG_FILES([desktop/Singular.desktop])
    177179# AC_CONFIG_FILES([desktop/Singular-manual.desktop])
     180
     181AC_CONFIG_FILES([libsingular-config])
    178182
    179183AC_CONFIG_FILES([redhat/Makefile])
  • dyn_modules/bigintm/Makefile.am

    rea5f3f6 r99b54a  
    6060
    6161if ENABLE_P_PROCS_DYNAMIC
    62   P_PROCS_MODULE_LDFLAGS = ${AMLDFLAGS} -shared -module
    63 #   P_PROCS_MODULE_LDFLAGSG = ${AMLDFLAGS} -shared -module
     62  P_PROCS_MODULE_LDFLAGS = ${AMLDFLAGS} -shared -module -dynamic -flat_namespace -weak_reference_mismatches weak -undefined dynamic_lookup
    6463else
    6564  P_PROCS_MODULE_LDFLAGS = ${AMLDFLAGS}
    66 #   P_PROCS_MODULE_LDFLAGSG = ${AMLDFLAGS}
    6765endif
    6866
    69 # Add under Mac OS X: -twolevel_namespace -weak_reference_mismatches weak -undefined dynamic_lookup
     67# Add under Mac OS X: -flat_namespace -weak_reference_mismatches weak -undefined dynamic_lookup
    7068
    7169bigintm_la_LDFLAGS = ${P_PROCS_MODULE_LDFLAGS}
  • dyn_modules/callgfanlib/Makefile.am

    rea5f3f6 r99b54a  
    5656
    5757if ENABLE_P_PROCS_DYNAMIC
    58   P_PROCS_MODULE_LDFLAGS = ${AMLDFLAGS} -shared -module
    59 #  P_PROCS_MODULE_LDFLAGSG = ${AMLDFLAGS} -shared -module
     58  P_PROCS_MODULE_LDFLAGS = ${AMLDFLAGS} -shared -module -dynamic -flat_namespace -weak_reference_mismatches weak -undefined dynamic_lookup
    6059else
    6160  P_PROCS_MODULE_LDFLAGS = ${AMLDFLAGS}
    62 #  P_PROCS_MODULE_LDFLAGSG = ${AMLDFLAGS}
    6361endif
    6462
    65 # Add under Mac OS X: -twolevel_namespace -weak_reference_mismatches weak -undefined dynamic_lookup
     63# Add under Mac OS X: -flat_namespace -weak_reference_mismatches weak -undefined dynamic_lookup
    6664
    6765gfanlib_la_LDFLAGS = ${P_PROCS_MODULE_LDFLAGS}
  • dyn_modules/syzextra/Makefile.am

    rea5f3f6 r99b54a  
    11ACLOCAL_AMFLAGS = -I ../../m4
    22
    3 moduledir = $(libexecdir)/singular/MOD
     3if ENABLE_P_PROCS_DYNAMIC
     4  moduledir = $(libexecdir)/singular/MOD
     5else
     6  moduledir = $(libdir)/singular
     7endif
    48
    5 if ENABLE_P_PROCS_DYNAMIC
     9
    610module_LTLIBRARIES=syzextra.la
    711
     12#if ENABLE_P_PROCS_DYNAMIC
    813# if WANT_DEBUG
    914# module_LTLIBRARIES+=syzextra_g.la
    1015# endif
    11  
    12 endif
     16#endif
    1317
    1418if ENABLE_FACTORY
     
    5357# syzextra_g_la_CPPFLAGS = ${MYINCLUDES} ${P_PROCS_CPPFLAGS_COMMON}
    5458
    55 #syzextra_la_CXXFLAGS   = ${NODEBUGCXXFLAGS}
     59syzextra_la_CXXFLAGS   =
     60# ${NODEBUGCXXFLAGS}
    5661#syzextra_g_la_CXXFLAGS = ${DEBUGCXXFLAGS}
    5762
    58 P_PROCS_MODULE_LDFLAGS = -shared -module ${AMLDFLAGS}
    59 # P_PROCS_MODULE_LDFLAGSG = -shared -module ${AMLDFLAGS}
    60 
    61 # Add under Mac OS X: -twolevel_namespace -weak_reference_mismatches weak -undefined dynamic_lookup
     63P_PROCS_MODULE_LDFLAGS = ${AMLDFLAGS} -module -flat_namespace -weak_reference_mismatches weak -undefined dynamic_lookup
     64# Add under Mac OS X: -flat_namespace -weak_reference_mismatches weak -undefined dynamic_lookup
    6265
    6366syzextra_la_LDFLAGS = ${P_PROCS_MODULE_LDFLAGS}
    64 # syzextra_g_la_LDFLAGS = ${P_PROCS_MODULE_LDFLAGSG}
    6567
    6668AM_COLOR_TESTS=always
  • libpolys/polys/Makefile.am

    rea5f3f6 r99b54a  
    102102# p_Procs_FieldZp_g_la_CXXFLAGS = ${DEBUGCXXFLAGS}
    103103
    104 P_PROCS_MODULE_LDFLAGS = -shared -module
    105 P_PROCS_MODULE_LDFLAGSG = -shared -module
     104P_PROCS_MODULE_LDFLAGS = -shared -module -dynamic -export-dynamic -avoid-version -weak_reference_mismatches weak -undefined dynamic_lookup -Wl,-undefined -Wl,dynamic_lookup -flat_namespace
    106105
    107106p_Procs_FieldGeneral_la_LDFLAGS = ${P_PROCS_MODULE_LDFLAGS}
  • m4/ax_python_with_version.m4

    rea5f3f6 r99b54a  
    112112        then
    113113          AC_DEFINE(EMBED_PYTHON,1,integrate python)
    114           AC_SUBST(EMBED_PYOBJECT_CFLAGS,"\${PYTHON_CSPEC}")
    115           AC_SUBST(EMBED_PYOBJECT_LDFLAGS,"\${PYTHON_LSPEC}")
     114#          AC_SUBST(EMBED_PYOBJECT_CFLAGS,"\${PYTHON_CSPEC}")
     115#          AC_SUBST(EMBED_PYOBJECT_LDFLAGS,"\${PYTHON_LSPEC}")
    116116        fi
    117117        if test x"$ax_python_use" = x"true"
  • m4/flags.m4

    rea5f3f6 r99b54a  
    103103 fi
    104104 
    105  if test "x${ENABLE_OPTIMIZATION}" != xno; then
    106   OPTFLAGS="-DOM_NDEBUG -DNDEBUG -O2 -Wno-unused-function -Wno-unused-parameter -Wno-unused-variable -fomit-frame-pointer -fwrapv"
     105 if test "x${ENABLE_OPTIMIZATION}" != xno; then 
     106  OPTFLAGS="-DOM_NDEBUG -DNDEBUG -O2 -Wno-unused-function -Wno-unused-parameter -Wno-unused-variable -fomit-frame-pointer -fwrapv -fpermissive -fvisibility=default"
    107107  #  -O3 - crashes gcc???!!! 
    108108  AC_LANG_PUSH([C])
     
    117117  AX_APPEND_LINK_FLAGS([-fno-exceptions -fno-rtti -fpermissive])
    118118#  AX_APPEND_LINK_FLAGS([-fno-implicit-templates]) # see above :(
    119 #  AX_APPEND_LINK_FLAGS([-rdynamic])
     119  AX_APPEND_LINK_FLAGS([-rdynamic])
     120  AX_APPEND_LINK_FLAGS([-flat_namespace -Wl,-bind_at_load -Wl,-undefined,dynamic_lookup  -fpermissive -fvisibility=default])
    120121 fi
    121122
Note: See TracChangeset for help on using the changeset viewer.