Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-5625

libqhullcpp.a needs to be compiled with -fPIC

    • Icon: Bug Bug
    • Resolution: Done-Errata
    • Icon: Undefined Undefined
    • rhel-9.4
    • rhel-9.2.0
    • qhull
    • qhull-7.2.1-11.el9
    • None
    • Moderate
    • rhel-sst-cs-databases
    • 21
    • None
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • If docs needed, set a value
    • None

      Description of problem:

      When trying to build gdl for EPEL9, I'm getting the following compile error:

      cd /builddir/build/BUILD/gdl-1.0.2/build-python/src && /usr/bin/cmake -E cmake_link_script CMakeFiles/gdl.dir/link.txt --verbose=1
      /usr/bin/g++ fPIC -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fcommon -fopenmp -DNDEBUG -Wl,-z,relro -Wl,-as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -shared -o GDL.so CMakeFiles/gdl.dir/CFMTLexer.cpp.o CMakeFiles/gdl.dir/FMTIn.cpp.o CMakeFiles/gdl.dir/FMTLexer.cpp.o CMakeFiles/gdl.dir/FMTOut.cpp.o CMakeFiles/gdl.dir/FMTParser.cpp.o CMakeFiles/gdl.dir/GDLInterpreter.cpp.o CMakeFiles/gdl.dir/GDLLexer.cpp.o CMakeFiles/gdl.dir/GDLParser.cpp.o CMakeFiles/gdl.dir/GDLTreeParser.cpp.o CMakeFiles/gdl.dir/datatypes.cpp.o CMakeFiles/gdl.dir/convol.cpp.o CMakeFiles/gdl.dir/convol2.cpp.o CMakeFiles/gdl.dir/smooth.cpp.o CMakeFiles/gdl.dir/basic_op.cpp.o CMakeFiles/gdl.dir/basic_op_new.cpp.o CMakeFiles/gdl.dir/getas.cpp.o CMakeFiles/gdl.dir/basic_op_add.cpp.o CMakeFiles/gdl.dir/basic_op_sub.cpp.o CMakeFiles/gdl.dir/basic_op_mult.cpp.o CMakeFiles/gdl.dir/basic_op_div.cpp.o CMakeFiles/gdl.dir/default_io.cpp.o CMakeFiles/gdl.dir/ifmt.cpp.o CMakeFiles/gdl.dir/ofmt.cpp.o CMakeFiles/gdl.dir/datatypes_minmax.cpp.o CMakeFiles/gdl.dir/allix.cpp.o CMakeFiles/gdl.dir/arrayindex.cpp.o CMakeFiles/gdl.dir/assocdata.cpp.o CMakeFiles/gdl.dir/basegdl.cpp.o CMakeFiles/gdl.dir/basic_fun.cpp.o CMakeFiles/gdl.dir/basic_fun_cl.cpp.o CMakeFiles/gdl.dir/basic_fun_jmg.cpp.o CMakeFiles/gdl.dir/calendar.cpp.o CMakeFiles/gdl.dir/color.cpp.o CMakeFiles/gdl.dir/convert2.cpp.o CMakeFiles/gdl.dir/dcommon.cpp.o CMakeFiles/gdl.dir/dcompiler.cpp.o CMakeFiles/gdl.dir/dialog.cpp.o CMakeFiles/gdl.dir/dinterpreter.cpp.o CMakeFiles/gdl.dir/dnode.cpp.o CMakeFiles/gdl.dir/dpro.cpp.o CMakeFiles/gdl.dir/dSFMT/dSFMT.c.o CMakeFiles/gdl.dir/dstructdesc.cpp.o CMakeFiles/gdl.dir/dstructfactory.cxx.o CMakeFiles/gdl.dir/dstructgdl.cpp.o CMakeFiles/gdl.dir/dvar.cpp.o CMakeFiles/gdl.dir/envt.cpp.o CMakeFiles/gdl.dir/extrat.cpp.o CMakeFiles/gdl.dir/exists_fun.cpp.o CMakeFiles/gdl.dir/fftw.cpp.o CMakeFiles/gdl.dir/file.cpp.o CMakeFiles/gdl.dir/fmtnode.cpp.o CMakeFiles/gdl.dir/gdlarray.cpp.o CMakeFiles/gdl.dir/gdleventhandler.cpp.o CMakeFiles/gdl.dir/gdlexception.cpp.o CMakeFiles/gdl.dir/gdlgstream.cpp.o CMakeFiles/gdl.dir/gdlxstream.cpp.o CMakeFiles/gdl.dir/gdljournal.cpp.o CMakeFiles/gdl.dir/gdlhelp.cpp.o CMakeFiles/gdl.dir/gdlpsstream.cpp.o CMakeFiles/gdl.dir/gdlsvgstream.cpp.o CMakeFiles/gdl.dir/gdlwidget.cpp.o CMakeFiles/gdl.dir/gdlwidgeteventhandler.cpp.o CMakeFiles/gdl.dir/gdlwxstream.cpp.o CMakeFiles/gdl.dir/gdlzstream.cpp.o CMakeFiles/gdl.dir/getfmtast.cpp.o CMakeFiles/gdl.dir/graphicsdevice.cpp.o CMakeFiles/gdl.dir/basic_pro.cpp.o CMakeFiles/gdl.dir/basic_pro_jmg.cpp.o CMakeFiles/gdl.dir/brent.cpp.o CMakeFiles/gdl.dir/grib.cpp.o CMakeFiles/gdl.dir/gsl_fun.cpp.o CMakeFiles/gdl.dir/gsl_matrix.cpp.o CMakeFiles/gdl.dir/hash.cpp.o CMakeFiles/gdl.dir/hdf5_fun.cpp.o CMakeFiles/gdl.dir/hdf_fun.cpp.o CMakeFiles/gdl.dir/hdf_pro.cpp.o CMakeFiles/gdl.dir/histogram.cpp.o CMakeFiles/gdl.dir/image.cpp.o CMakeFiles/gdl.dir/initct.cpp.o CMakeFiles/gdl.dir/initsysvar.cpp.o CMakeFiles/gdl.dir/interpolate.cpp.o CMakeFiles/gdl.dir/interpol.cpp.o CMakeFiles/gdl.dir/io.cpp.o CMakeFiles/gdl.dir/labelregion.cpp.o CMakeFiles/gdl.dir/lapack.cpp.o CMakeFiles/gdl.dir/least_squares.cpp.o CMakeFiles/gdl.dir/libinit.cpp.o CMakeFiles/gdl.dir/libinit_ac.cpp.o CMakeFiles/gdl.dir/libinit_cl.cpp.o CMakeFiles/gdl.dir/libinit_gm.cpp.o CMakeFiles/gdl.dir/libinit_jmg.cpp.o CMakeFiles/gdl.dir/libinit_mes.cpp.o CMakeFiles/gdl.dir/libinit_ng.cpp.o CMakeFiles/gdl.dir/libinit_jp.cpp.o CMakeFiles/gdl.dir/libinit_exists.cpp.o CMakeFiles/gdl.dir/linearprogramming.cpp.o CMakeFiles/gdl.dir/list.cpp.o CMakeFiles/gdl.dir/magick_cl.cpp.o CMakeFiles/gdl.dir/math_fun.cpp.o CMakeFiles/gdl.dir/math_fun_ac.cpp.o CMakeFiles/gdl.dir/math_fun_gm.cpp.o CMakeFiles/gdl.dir/math_fun_jmg.cpp.o CMakeFiles/gdl.dir/math_fun_ng.cpp.o CMakeFiles/gdl.dir/math_utl.cpp.o CMakeFiles/gdl.dir/matrix_cholesky.cpp.o CMakeFiles/gdl.dir/matrix_invert.cpp.o CMakeFiles/gdl.dir/mpi.cpp.o CMakeFiles/gdl.dir/ncdf_att_cl.cpp.o CMakeFiles/gdl.dir/ncdf_cl.cpp.o CMakeFiles/gdl.dir/ncdf_dim_cl.cpp.o CMakeFiles/gdl.dir/ncdf_var_cl.cpp.o CMakeFiles/gdl.dir/ncdf4_group.cpp.o CMakeFiles/gdl.dir/newprognode.cpp.o CMakeFiles/gdl.dir/nullgdl.cpp.o CMakeFiles/gdl.dir/objects.cpp.o CMakeFiles/gdl.dir/overload.cpp.o CMakeFiles/gdl.dir/plotting_axis.cpp.o CMakeFiles/gdl.dir/plotting_contour.cpp.o CMakeFiles/gdl.dir/plotting_convert_coord.cpp.o CMakeFiles/gdl.dir/plotting_cursor.cpp.o CMakeFiles/gdl.dir/plotting_device.cpp.o CMakeFiles/gdl.dir/plotting_erase.cpp.o CMakeFiles/gdl.dir/plotting_image.cpp.o CMakeFiles/gdl.dir/plotting_misc.cpp.o CMakeFiles/gdl.dir/plotting_oplot.cpp.o CMakeFiles/gdl.dir/plotting_plot.cpp.o CMakeFiles/gdl.dir/plotting_plots.cpp.o CMakeFiles/gdl.dir/plotting_polyfill.cpp.o CMakeFiles/gdl.dir/plotting_shade_surf.cpp.o CMakeFiles/gdl.dir/plotting_surface.cpp.o CMakeFiles/gdl.dir/plotting_windows.cpp.o CMakeFiles/gdl.dir/plotting_xyouts.cpp.o CMakeFiles/gdl.dir/plotting.cpp.o CMakeFiles/gdl.dir/print.cpp.o CMakeFiles/gdl.dir/print_tree.cpp.o CMakeFiles/gdl.dir/prognode.cpp.o CMakeFiles/gdl.dir/prognode_lexpr.cpp.o CMakeFiles/gdl.dir/prognodeexpr.cpp.o CMakeFiles/gdl.dir/projections.cpp.o CMakeFiles/gdl.dir/randomgenerators.cpp.o CMakeFiles/gdl.dir/read.cpp.o CMakeFiles/gdl.dir/saverestore.cpp.o CMakeFiles/gdl.dir/semshm.cpp.o CMakeFiles/gdl.dir/sigfpehandler.cpp.o CMakeFiles/gdl.dir/sorting.cpp.o CMakeFiles/gdl.dir/str.cpp.o CMakeFiles/gdl.dir/terminfo.cpp.o CMakeFiles/gdl.dir/tiff.cxx.o CMakeFiles/gdl.dir/triangulation.cpp.o CMakeFiles/gdl.dir/typetraits.cpp.o CMakeFiles/gdl.dir/where.cpp.o CMakeFiles/gdl.dir/widget.cpp.o CMakeFiles/gdl.dir/Shapefiles.cpp.o CMakeFiles/gdl.dir/sax.cpp.o CMakeFiles/gdl.dir/qhull.cpp.o -lantlr -ldl -lncurses -lform -lreadline -lhistory -lz -lgsl -lgslcblas -ltirpc -lplplot -lplplotcxx -lpng -lz -fopenmp -pthread -lwx_baseu-3.2 -lwx_gtk3u_core-3.2 -lGraphicsMagick -lGraphicsMagick++ -ltiff -lgeotiff -lnetcdf -lmfhdf -ldf -lz -ljpeg -lhdf5 -lfftw3 -lfftw3f -lproj -lpython3.9 -ludunits2 -leccodes -Wl,-Bstatic -lqhullcpp -Wl,-Bdynamic -lqhull_r -lglpk -lshp -lexpat -lgsl -lgslcblas -ltirpc -lplplot -lplplotcxx -lpng -lwx_baseu-3.2 -lwx_gtk3u_core-3.2 -lGraphicsMagick -lGraphicsMagick++ -ltiff -lgeotiff -lnetcdf -lmfhdf -ldf -lz -ljpeg -lhdf5 -lfftw3 -lfftw3f -lproj -lpython3.9 -ludunits2 -leccodes -Wl,-Bstatic -lqhullcpp -Wl,-Bdynamic -lqhull_r -lglpk -lshp -lexpat
      /builddir/build/BUILD/gdl-1.0.2/src/minmax_include.cpp:353: warning: type 'struct .omp_data_s.435' violates the C++ One Definition Rule [-Wodr]
      353 | #pragma omp parallel num_threads(GDL_NTHREADS)

      /builddir/build/BUILD/gdl-1.0.2/src/where_inc.cpp:203: note: a different type is defined in another translation unit
      203 | #pragma omp parallel num_threads(nchunk) //shared(partialCount,part) //if (nEl >= CpuTPOOL_MIN_ELTS && (CpuTPOOL_MAX_ELTS == 0 || CpuTPOOL_MAX_ELTS >= nEl))

      /builddir/build/BUILD/gdl-1.0.2/src/datatypes_minmax.cpp:77: note: the first difference of corresponding definitions is field 'start'
      77 | SizeT start, SizeT stop, SizeT step, DLong valIx, bool useAbs) {

      /builddir/build/BUILD/gdl-1.0.2/src/where_inc.cpp:174: note: a field with different name is defined in another translation unit
      174 | void Data_<Sp>::Where(DLong* &ret, SizeT &passed_count, bool comp, DLong* &comp_ret) {

      /builddir/build/BUILD/gdl-1.0.2/src/minmax_include.cpp:257: warning: type 'struct .omp_data_s.532' violates the C++ One Definition Rule [-Wodr]
      257 | #pragma omp parallel num_threads(GDL_NTHREADS)

      /builddir/build/BUILD/gdl-1.0.2/src/where_inc.cpp:47: note: a different type is defined in another translation unit
      47 | #pragma omp parallel num_threads(nchunk) //shared(partialCount,part) //if (nEl >= CpuTPOOL_MIN_ELTS && (CpuTPOOL_MAX_ELTS == 0 || CpuTPOOL_MAX_ELTS >= nEl))

      /builddir/build/BUILD/gdl-1.0.2/src/datatypes_minmax.cpp:85: note: the first difference of corresponding definitions is field 'start'
      85 | SizeT start, SizeT stop, SizeT step, DLong valIx, bool useAbs) {

      /builddir/build/BUILD/gdl-1.0.2/src/where_inc.cpp:18: note: a field with different name is defined in another translation unit
      18 | void Data_<Sp>::Where(DLong64* &ret, SizeT &passed_count, bool comp, DLong64* &comp_ret) {

      /builddir/build/BUILD/gdl-1.0.2/src/minmax_include.cpp:353: warning: type 'struct .omp_data_s.533' violates the C++ One Definition Rule [-Wodr]
      353 | #pragma omp parallel num_threads(GDL_NTHREADS)

      /builddir/build/BUILD/gdl-1.0.2/src/where_inc.cpp:126: note: a different type is defined in another translation unit
      126 | #pragma omp parallel num_threads(nchunk) //shared(partialCount,part) //if (nEl >= CpuTPOOL_MIN_ELTS && (CpuTPOOL_MAX_ELTS == 0 || CpuTPOOL_MAX_ELTS >= nEl))

      /builddir/build/BUILD/gdl-1.0.2/src/datatypes_minmax.cpp:85: note: the first difference of corresponding definitions is field 'start'
      85 | SizeT start, SizeT stop, SizeT step, DLong valIx, bool useAbs) {

      /builddir/build/BUILD/gdl-1.0.2/src/where_inc.cpp:18: note: a field with different name is defined in another translation unit
      18 | void Data_<Sp>::Where(DLong64* &ret, SizeT &passed_count, bool comp, DLong64* &comp_ret) {

      /builddir/build/BUILD/gdl-1.0.2/src/libinit.cpp: In function 'LibInit':
      /builddir/build/BUILD/gdl-1.0.2/src/libinit.cpp:74: note: variable tracking size limit exceeded with '-fvar-tracking-assignments', retrying without
      74 | void LibInit()

      /usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/11/../../../../lib64/libqhullcpp.a(QhullVertexSet.cpp.o): warning: relocation against `_ZTIN8orgQhull10QhullErrorE' in read-only section `.text.unlikely[.text.unlikely.group]'
      /usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/11/../../../../lib64/libqhullcpp.a(PointCoordinates.cpp.o): relocation R_X86_64_PC32 against symbol `_ZNKSt5ctypeIcE8do_widenEc' can not be used when making a shared object; recompile with -fPIC
      /usr/bin/ld: final link failed: bad value
      collect2: error: ld returned 1 exit status

      Version-Release number of selected component (if applicable):
      1:7.2.1-9.el9

              fjanus@redhat.com Filip Janus
              opoplawski Orion Poplawski
              Filip Janus Filip Janus
              Lukas Zachar Lukas Zachar
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

                Created:
                Updated:
                Resolved: