[PATCH] configure.ac: Solaris linker and compiler flags
Evgeny Litvinenko
evgeny.v.litvinenko at gmail.com
Tue Sep 10 15:56:48 CDT 2019
On 9/10/19, Alexandre Julliard <julliard at winehq.org> wrote:
> Evgeny Litvinenko <evgeny.v.litvinenko at gmail.com> writes:
>
>> @@ -940,6 +940,60 @@ case $host_os in
>> fi
>> ;;
>>
>> + solaris*)
>> + DLLFLAGS="$DLLFLAGS -fPIC"
>> + LDDLLFLAGS="-shared -fPIC"
>> +
>> + WINE_TRY_CFLAGS([-fPIC -Wl,-pie], [LDEXECFLAGS="-Wl,-pie"])
>> +
>> + AC_CACHE_CHECK([for linker flags to build shared library],
>> ac_cv_c_dll_ld_opts,
>> + [WINE_TRY_SHLIB_FLAGS([$LDDLLFLAGS -Wl,-G,-B,symbolic],
>> + [ac_cv_c_dll_ld_opts="-Wl,-G,-B,symbolic"],
>> + [WINE_TRY_SHLIB_FLAGS([$LDDLLFLAGS -Wl,-shared,-Bsymbolic],
>> + [ac_cv_c_dll_ld_opts="-Wl,-shared,-Bsymbolic"],
>> + [ac_cv_c_dll_ld_opts=""])])])
>> +
>> + AC_CACHE_CHECK([for linker flags to record a shared object name],
>> ac_cv_c_dll_ld_soname,
>> + [WINE_TRY_SHLIB_FLAGS([$LDDLLFLAGS -Wl,-soname,confest.so.1],
>> +
>> [ac_cv_c_dll_ld_soname="-Wl,-soname,libwine.so.$libwine_soversion"],
>> + [WINE_TRY_SHLIB_FLAGS([$LDDLLFLAGS -Wl,-h,confest.so.1],
>> +
>> [ac_cv_c_dll_ld_soname="-Wl,-h,libwine.so.$libwine_soversion"],
>> + [ac_cv_c_dll_ld_soname=""])])])
>> +
>> + echo '{ global: *; };' >conftest.map
>> + AC_CACHE_CHECK([for linker flags to use mapfile],
>> ac_cv_c_dll_ld_map,
>> + [WINE_TRY_SHLIB_FLAGS([$LDDLLFLAGS
>> -Wl,--version-script=conftest.map],
>> +
>> [ac_cv_c_dll_ld_map="-Wl,--version-script=\$(srcdir)/wine.map"],
>> + [WINE_TRY_SHLIB_FLAGS([$LDDLLFLAGS -Wl,-M,conftest.map],
>> + [ac_cv_c_dll_ld_map="-Wl,-M,\$(srcdir)/wine.map"],
>> + [ac_cv_c_dll_ld_map=""])])])
>> + rm -f conftest.map
>> +
>> + AC_SUBST(LIBWINE_LDFLAGS,"$LDDLLFLAGS $ac_cv_c_dll_ld_opts
>> $ac_cv_c_dll_ld_soname $ac_cv_c_dll_ld_map")
>> +
>> + WINEPRELOADER_LDFLAGS="-static -nostartfiles -nodefaultlibs
>> -Wl,-Ttext=0x7c400000"
>> +
>> + WINE_TRY_CFLAGS([-Wl,--export-dynamic],
>> [WINELOADER_LDFLAGS="-Wl,--export-dynamic"])
>> +
>> + WINE_TRY_CFLAGS([-Wl,--rpath,\$ORIGIN/../lib],
>> +
>> [LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir}
>> \${libdir}\`"
>> +
>> LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(top_builddir)/libs/wine"],
>> + [WINE_TRY_CFLAGS([-Wl,-R,\$ORIGIN/../lib],
>> +
>> [LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir}
>> \${libdir}\`"
>> +
>> LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(top_builddir)/libs/wine"])])
>> +
>> + WINE_TRY_CFLAGS([-Wl,--enable-new-dtags],
>> + [LDRPATH_INSTALL="$LDRPATH_INSTALL
>> -Wl,--enable-new-dtags"])
>> +
>> + WINE_TRY_CFLAGS([-Wl,-z,max-page-size=0x1000],
>> + [WINELOADER_LDFLAGS="$WINELOADER_LDFLAGS
>> -Wl,-z,max-page-size=0x1000"])
>> +
>> + AC_SUBST(LIBWINE_SHAREDLIB,"libwine.so.$libwine_version")
>> + AC_SUBST(LIBWINE_DEPENDS,"wine.map")
>> + TOP_INSTALL_LIB="$TOP_INSTALL_LIB
>> libs/wine/libwine.so.$libwine_version
>> libs/wine/libwine.so.$libwine_soversion"
>> + TOP_INSTALL_DEV="$TOP_INSTALL_DEV libs/wine/libwine.so"
>
> This is pretty much the same as the existing default case. Do you really
> need to duplicate all this? What are you trying to fix?
> --
> Alexandre Julliard
>
The default case of 'case $host_os' has variables DLLFLAGS and
LDDLLFLAGS with "-fno-PIC"
which is incorrect for Solaris when building shared objects.
I get many errors like the following when try to use original configure.ac
/usr/gcc/6/bin/gcc -o libwine.so.1.0 config.o debug.o ldt.o loader.o
mmap.o port.o version.o -shared \
-Wl,-soname,libwine.so.1 ../../libs/port/libwine_port.a -lsocket -lnsl -m32
Text relocation remains referenced
against symbol offset in file
.rodata.str1.1 (merged string section) 0x141 config.o
.text (section) 0x15e config.o
.rodata.str1.1 (merged string section) 0x1ee config.o
.rodata (section) 0x233 config.o
The config.log and build log attached.
I agree that it may be enough to change the default case.
Thanks,
Evgeny.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: wine_4.15_openindiana_config.log
Type: text/x-log
Size: 1524272 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20190910/91677412/attachment-0002.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: wine_4.15_openindiana_build.log
Type: text/x-log
Size: 288306 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20190910/91677412/attachment-0003.bin>
More information about the wine-devel
mailing list