octave-patch-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-patch-tracker] [patch #8919] Start of patch to enable visibility


From: Markus Mützel
Subject: [Octave-patch-tracker] [patch #8919] Start of patch to enable visibility attributes for GCC in build system
Date: Thu, 31 Mar 2016 19:16:13 +0000
User-agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:46.0) Gecko/20100101 Firefox/46.0

Follow-up Comment #1, patch #8919 (project octave):

I hope it is to OK if I jump in with some results from trial and error.

I applied the patch from comment #0 and build on a freshly cloned default
branch after bootstrap, configure with:
make CFLAGS="-fvisibility=hidden" CXXFLAGS="-fvisibility=hidden"
I decorated the functions which threw errors with OCTAVE_API. In this way, the
linker errors are down to the following:

src/src_octave_cli-main-cli.o:(.data+0x38): undefined reference to `tzalloc'
src/src_octave_cli-main-cli.o:(.data+0x40): undefined reference to `tzfree'
src/src_octave_cli-main-cli.o:(.data+0x48): undefined reference to
`localtime_rz'
src/src_octave_cli-main-cli.o:(.data+0x50): undefined reference to `mktime_z'
src/src_octave_cli-main-cli.o:(.data+0xc0): undefined reference to `fpurge'
src/src_octave_cli-main-cli.o:(.rodata+0x8): undefined reference to
`rpl_mbrtowc'
src/src_octave_cli-main-cli.o:(.rodata+0x10): undefined reference to
`rpl_nanosleep'
src/src_octave_cli-main-cli.o:(.rodata+0x18): undefined reference to
`rpl_mktime'
src/src_octave_cli-main-cli.o:(.rodata+0x20): undefined reference to
`rpl_canonicalize_file_name'
src/src_octave_cli-main-cli.o:(.rodata+0x28): undefined reference to
`rpl_realpath'
src/src_octave_cli-main-cli.o:(.rodata+0x30): undefined reference to
`rpl_fclose'
src/src_octave_cli-main-cli.o:(.rodata+0x38): undefined reference to
`rpl_fflush'
src/src_octave_cli-main-cli.o:(.rodata+0x40): undefined reference to
`rpl_fseek'
src/src_octave_cli-main-cli.o:(.rodata+0x48): undefined reference to
`rpl_fseeko'
libinterp/.libs/liboctinterp.so: undefined reference to `sha512_buffer'
libinterp/.libs/liboctinterp.so: undefined reference to `sha224_buffer'
libinterp/.libs/liboctinterp.so: undefined reference to `md4_buffer'
libinterp/.libs/liboctinterp.so: undefined reference to `sha1_buffer'
libinterp/.libs/liboctinterp.so: undefined reference to `sha256_buffer'
libinterp/.libs/liboctinterp.so: undefined reference to `num_processors'
libinterp/.libs/liboctinterp.so: undefined reference to `rpl_fcntl'
libinterp/.libs/liboctinterp.so: undefined reference to `md2_buffer'
libinterp/.libs/liboctinterp.so: undefined reference to `sha384_buffer'
libinterp/.libs/liboctinterp.so: undefined reference to `md5_buffer'


These are functions (not) exported from gnulib. I do not know how to configure
to use the visibility flags for compilation but not for the gnulib part.

With the attached patch applied, a lot of warnings along these lines occur
while compiling:

  CXX      libinterp/template-inst/libinterp_liboctinterp_la-Array-tc.lo
In file included from ../libinterp/template-inst/Array-tc.cc:30:0:
../liboctave/array/Array.cc:2748:22: warning: type attributes ignored after
type is already defined [-Wattributes]
   template class API Array<T>
                      ^
../libinterp/template-inst/Array-tc.cc:38:1: note: in expansion of macro
'INSTANTIATE_ARRAY'
 INSTANTIATE_ARRAY (octave_value, OCTINTERP_API);
 ^



Hope this helps.

(file #36813)
    _______________________________________________________

Additional Item Attachment:

File name: visibility2.patch              Size:24 KB


    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/patch/?8919>

_______________________________________________
  Nachricht gesendet von/durch Savannah
  http://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]