PostgreSQL Friends: 

Trying to build 9.6RC1, with Python3.4, on OpenIndiana (Illumos). It seems the 
detection of shared library status of the .so has changed. This appears to be 
related to a different(?) elucidation of python configuration. 

A 'hardwired' change to the configure script to trap platform 'solaris' will 
work, but this seems the inappropriate approach. 

Would be happy to work through this here - I'd like to make it a small 
'contribution'. 

Clipped from configure script: 



    1. 
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link an embedded 
Python application" >&5 

    2. 
$as_echo_n "checking how to link an embedded Python application... " >&6; } 

    3. 

    4. 
python_libdir=`${PYTHON} -c "import distutils.sysconfig; print(' 
'.join(filter(None,distutils.sysconfig.get_config_vars('LIBDIR'))))"` 

    5. 
python_ldlibrary=`${PYTHON} -c "import distutils.sysconfig; print(' 
'.join(filter(None,distutils.sysconfig.get_config_vars('LDLIBRARY'))))"` 

    6. 
python_so=`${PYTHON} -c "import distutils.sysconfig; print(' 
'.join(filter(None,distutils.sysconfig.get_config_vars('SO'))))"` 

    7. 
echo "-----" 

    8. 
echo "----- LOU MOD: python_so: $python_so" 

    9. 
echo "-----" 

    10. 

    11. 
configure finds '.so' on Python2.7 

    12. 
configure finds '.cpython-34m.so' on Python3.4 

    13. 

    14. 
------------- LATER in the config script, the following 'hardwired' change will 
'fix' this, but is likely not the right approach: 

    15. 
(our Python _is_ built as a shared lib. So, this is wonky, but it will work: ) 

    16. 

    17. 
# We need libpython as a shared library. With Python >=2.5, we 

    18. 
# check the Py_ENABLE_SHARED setting. On Debian, the setting is not 

    19. 
# correct before the jessie release (http://bugs.debian.org/695979). 

    20. 
# We also want to support older Python versions. So as a fallback 

    21. 
# we see if there is a file that is named like a shared library. 

    22. 

    23. 
if test "$python_enable_shared" != 1; then 

    24. 
if test "$PORTNAME" = darwin; then 

    25. 
# macOS does supply a .dylib even though Py_ENABLE_SHARED does 

    26. 
# not get set. The file detection logic below doesn't succeed 

    27. 
# on older macOS versions, so make it explicit. 

    28. 
python_enable_shared=1 

    29. 
elif test "$PORTNAME" = win32; then 

    30. 
# Windows also needs an explicit override. 

    31. 
python_enable_shared=1 

    32. 
# ----- MOD BY LOU: ---------------------------------------- 

    33. 
elif test "$PORTNAME" = solaris; then 

    34. 
# Solaris explicit override. 

    35. 
python_enable_shared=1 

    36. 
else 

    37. 
# We don't know the platform shared library extension here yet, 

    38. 
# so we try some candidates. 

    39. 
for dlsuffix in .so .sl; do 

    40. 
if ls "$python_libdir"/libpython*${dlsuffix}* >/dev/null 2>&1; then 

    41. 
python_enable_shared=1 

    42. 
break 

    43. 
fi 

    44. 
done 

    45. 
fi 

    46. 
fi 

Reply via email to