Control: tags -1 patch On Sun, Nov 22, 2020 at 10:25:21AM +0100, Sebastian Ramacher wrote: > Source: gpac > Version: 1.0.1+dfsg1-2 > Severity: serious > Tags: ftbfs > Justification: fails to build from source (but built successfully in the past) > X-Debbugs-Cc: sramac...@debian.org > > gpac FTBFS on armel because it does not link with -latomic: > | gcc -shared "-Wl,-soname,libgpac.so.10" -o ../bin/gcc/libgpac.so > utils/os_divers.o utils/os_file.o utils/list.o utils/bitstream.o > utils/constants.o utils/error.o utils/alloc.o utils/url.o utils/configfile.o > utils/gltools.o utils/gzio.o utils/sha1.o utils/base_encoding.o utils/math.o > utils/os_net.o utils/os_thread.o utils/os_config_init.o utils/cache.o > utils/downloader.o utils/xml_parser.o utils/utf.o utils/token.o utils/color.o > utils/Remotery.o utils/uni_bidi.o utils/unicode.o utils/os_module.o > utils/module.o utils/path2d.o utils/path2d_stroker.o crypto/g_crypt.o > crypto/g_crypt_openssl.o crypto/g_crypt_tinyaes.o crypto/tiny_aes.o > scenegraph/base_scenegraph.o scenegraph/mpeg4_animators.o > scenegraph/commands.o scenegraph/mpeg4_nodes.o scenegraph/mpeg4_valuator.o > scenegraph/vrml_interpolators.o scenegraph/vrml_proto.o > scenegraph/vrml_route.o scenegraph/vrml_script.o scenegraph/vrml_js.o > scenegraph/vrml_tools.o scenegraph/x3d_nodes.o scenegraph/svg_attributes.o > scenegraph/svg_types.o scenegraph/svg_js.o scenegraph/smil_anim.o > scenegraph/smil_timing.o scenegraph/svg_properties.o scenegraph/dom_events.o > scenegraph/dom_js.o scenegraph/xml_ns.o ietf/rtcp.o ietf/rtp.o > ietf/rtp_packetizer.o ietf/rtp_pck_3gpp.o ietf/rtp_pck_mpeg12.o > ietf/rtp_pck_mpeg4.o ietf/rtsp_command.o ietf/rtsp_common.o > ietf/rtsp_response.o ietf/rtsp_session.o ietf/sdp.o ietf/rtp_depacketizer.o > ietf/rtp_streamer.o bifs/arith_decoder.o bifs/bifs_codec.o > bifs/bifs_node_tables.o bifs/com_dec.o bifs/com_enc.o bifs/conditional.o > bifs/field_decode.o bifs/field_encode.o bifs/memory_decoder.o > bifs/predictive_mffield.o bifs/quantize.o bifs/script_dec.o bifs/script_enc.o > bifs/unquantize.o isomedia/avc_ext.o isomedia/box_code_3gpp.o > isomedia/box_code_apple.o isomedia/box_code_base.o isomedia/box_code_drm.o > isomedia/box_code_meta.o isomedia/box_dump.o isomedia/box_funcs.o > isomedia/data_map.o isomedia/drm_sample.o isomedia/isom_intern.o > isomedia/isom_read.o isomedia/isom_store.o isomedia/isom_write.o > isomedia/media.o isomedia/media_odf.o isomedia/meta.o > isomedia/movie_fragments.o isomedia/sample_descs.o isomedia/stbl_read.o > isomedia/stbl_write.o isomedia/track.o isomedia/tx3g.o isomedia/iff.o > isomedia/hint_track.o isomedia/hinting.o isomedia/box_code_adobe.o > odf/desc_private.o odf/descriptors.o odf/odf_code.o odf/odf_codec.o > odf/odf_command.o odf/qos.o odf/slc.o odf/ipmpx_code.o odf/oci_codec.o > odf/ipmpx_dump.o odf/ipmpx_parse.o odf/odf_dump.o odf/odf_parse.o > media_tools/isom_tools.o media_tools/dash_segmenter.o > media_tools/av_parsers.o media_tools/atsc_dmx.o media_tools/img.o > media_tools/media_import.o media_tools/mpegts.o media_tools/m3u8.o > media_tools/mpd.o media_tools/dash_client.o media_tools/media_export.o > media_tools/m2ts_mux.o media_tools/avilib.o media_tools/mpeg2_ps.o > media_tools/gpac_ogg.o media_tools/crypt_tools.o media_tools/isom_hinter.o > media_tools/saf.o media_tools/vobsub.o media_tools/webvtt.o > scene_manager/scene_manager.o scene_manager/text_to_bifs.o > scene_manager/loader_bt.o scene_manager/loader_xmt.o > scene_manager/loader_isom.o scene_manager/loader_qt.o > scene_manager/loader_svg.o scene_manager/swf_parse.o scene_manager/swf_bifs.o > scene_manager/swf_svg.o scene_manager/scene_dump.o > scene_manager/scene_stats.o scene_manager/scene_engine.o > scene_manager/encode_isom.o terminal/terminal.o compositor/audio_input.o > compositor/audio_mixer.o compositor/audio_render.o compositor/bindable.o > compositor/camera.o compositor/compositor.o compositor/compositor_2d.o > compositor/compositor_3d.o compositor/compositor_node_init.o > compositor/drawable.o compositor/events.o compositor/font_engine.o > compositor/hc_flash_shape.o compositor/hardcoded_protos.o compositor/mesh.o > compositor/mesh_collide.o compositor/mesh_tesselate.o > compositor/mpeg4_animstream.o compositor/mpeg4_audio.o > compositor/mpeg4_background.o compositor/mpeg4_background2d.o > compositor/mpeg4_bitmap.o compositor/mpeg4_composite.o > compositor/mpeg4_form.o compositor/mpeg4_geometry_2d.o > compositor/mpeg4_geometry_3d.o compositor/mpeg4_geometry_ifs2d.o > compositor/mpeg4_geometry_ils2d.o compositor/mpeg4_gradients.o > compositor/mpeg4_grouping.o compositor/mpeg4_grouping_2d.o > compositor/mpeg4_grouping_3d.o compositor/mpeg4_layer_2d.o > compositor/mpeg4_layer_3d.o compositor/mpeg4_layout.o > compositor/mpeg4_lighting.o compositor/mpeg4_path_layout.o > compositor/mpeg4_sensors.o compositor/mpeg4_sound.o compositor/mpeg4_text.o > compositor/mpeg4_textures.o compositor/mpeg4_timesensor.o > compositor/mpeg4_viewport.o compositor/navigate.o > compositor/offscreen_cache.o compositor/svg_base.o compositor/svg_filters.o > compositor/svg_font.o compositor/svg_geometry.o compositor/svg_grouping.o > compositor/svg_media.o compositor/svg_paint_servers.o compositor/svg_text.o > compositor/texturing.o compositor/texturing_gl.o compositor/visual_manager.o > compositor/visual_manager_2d.o compositor/visual_manager_2d_draw.o > compositor/visual_manager_3d.o compositor/visual_manager_3d_gl.o > compositor/x3d_geometry.o compositor/clock.o compositor/mpeg4_inputsensor.o > compositor/mpeg4_mediacontrol.o compositor/media_object.o > compositor/mpeg4_mediasensor.o compositor/mpeg4_inline.o > compositor/scene_ns.o compositor/object_manager.o compositor/scene.o > compositor/svg_external.o compositor/scene_node_init.o laser/lsr_enc.o > laser/lsr_dec.o laser/lsr_tables.o evg/ftgrays.o evg/raster3d.o > evg/raster_565.o evg/raster_argb.o evg/raster_rgb.o evg/raster_yuv.o > evg/stencil.o evg/surface.o filter_core/filter_pck.o filter_core/filter_pid.o > filter_core/filter_props.o filter_core/filter_queue.o > filter_core/filter_session.o filter_core/filter_register.o > filter_core/filter.o filter_core/filter_session_js.o filters/bsrw.o > filters/compose.o filters/dasher.o filters/dec_ac52.o filters/dec_bifs.o > filters/dec_faad.o filters/dec_img.o filters/dec_j2k.o filters/dec_laser.o > filters/dec_mad.o filters/dec_mediacodec.o filters/dec_nvdec.o > filters/dec_nvdec_sdk.o filters/dec_odf.o filters/dec_theora.o > filters/dec_ttml.o filters/dec_ttxt.o filters/dec_vorbis.o filters/dec_vtb.o > filters/dec_webvtt.o filters/dec_xvid.o filters/decrypt_cenc_isma.o > filters/dmx_avi.o filters/dmx_dash.o filters/dmx_gsf.o filters/dmx_m2ts.o > filters/dmx_mpegps.o filters/dmx_nhml.o filters/dmx_nhnt.o filters/dmx_ogg.o > filters/dmx_saf.o filters/dmx_vobsub.o filters/enc_jpg.o filters/enc_png.o > filters/encrypt_cenc_isma.o filters/ff_common.o filters/ff_avf.o > filters/ff_dec.o filters/ff_dmx.o filters/ff_enc.o filters/ff_rescale.o > filters/ff_mx.o filters/filelist.o filters/hevcmerge.o filters/hevcsplit.o > filters/in_atsc.o filters/in_dvb4linux.o filters/in_file.o filters/in_http.o > filters/in_pipe.o filters/in_rtp.o filters/in_rtp_rtsp.o filters/in_rtp_sdp.o > filters/in_rtp_signaling.o filters/in_rtp_stream.o filters/in_sock.o > filters/inspect.o filters/isoffin_load.o filters/isoffin_read.o > filters/isoffin_read_ch.o filters/jsfilter.o filters/load_bt_xmt.o > filters/load_svg.o filters/load_text.o filters/mux_avi.o filters/mux_gsf.o > filters/mux_isom.o filters/mux_ts.o filters/out_audio.o filters/out_file.o > filters/out_http.o filters/out_pipe.o filters/out_rtp.o filters/out_rtsp.o > filters/out_sock.o filters/out_video.o filters/reframer.o > filters/reframe_ac3.o filters/reframe_adts.o filters/reframe_latm.o > filters/reframe_amr.o filters/reframe_av1.o filters/reframe_flac.o > filters/reframe_h263.o filters/reframe_img.o filters/reframe_mp3.o > filters/reframe_mpgvid.o filters/reframe_nalu.o filters/reframe_prores.o > filters/reframe_qcp.o filters/reframe_rawvid.o filters/reframe_rawpcm.o > filters/resample_audio.o filters/tileagg.o filters/tssplit.o > filters/unit_test_filter.o filters/rewind.o filters/rewrite_adts.o > filters/rewrite_mp4v.o filters/rewrite_nalu.o filters/rewrite_obu.o > filters/vflip.o filters/vcrop.o filters/write_generic.o filters/write_nhml.o > filters/write_nhnt.o filters/write_qcp.o filters/write_vtt.o > ../modules/dektec_out/dektec_video_decl.o filters/dec_opensvc.o > quickjs/cutils.o quickjs/libbf.o quickjs/libregexp.o quickjs/libunicode.o > quickjs/quickjs.o jsmods/core.o jsmods/evg.o jsmods/scene_js.o > jsmods/storage.o jsmods/webgl.o jsmods/xhr.o -lm -lGL -lGLU -lX11 -lz -ljpeg > -lpng -L/usr/lib/arm-linux-gnueabi -lavcodec -lavformat -lavutil -lavdevice > -lswscale -lswresample -lavfilter -lfaad -lmad -lxvidcore -la52 -lvorbis > -ltheora -lpthread -ldl -Wl,-z,relro -Wl,-z,relro -Wl,--warn-common > -Wl,-z,defs -g > | /usr/bin/ld: quickjs/quickjs.o: in function `js_atomics_op': > | ./src/quickjs/quickjs.c:51429: undefined reference to `__atomic_load_8' > | /usr/bin/ld: ./src/quickjs/quickjs.c:51414: undefined reference to > `__atomic_fetch_xor_8' > | /usr/bin/ld: ./src/quickjs/quickjs.c:51415: undefined reference to > `__atomic_exchange_8' > | /usr/bin/ld: ./src/quickjs/quickjs.c:51458: undefined reference to > `__atomic_compare_exchange_8' > | /usr/bin/ld: ./src/quickjs/quickjs.c:51410: undefined reference to > `__atomic_fetch_add_8' > | /usr/bin/ld: ./src/quickjs/quickjs.c:51411: undefined reference to > `__atomic_fetch_and_8' > | /usr/bin/ld: ./src/quickjs/quickjs.c:51412: undefined reference to > `__atomic_fetch_or_8' > | /usr/bin/ld: ./src/quickjs/quickjs.c:51413: undefined reference to > `__atomic_fetch_sub_8' > | /usr/bin/ld: quickjs/quickjs.o: in function `js_atomics_store': > | ./src/quickjs/quickjs.c:51522: undefined reference to `__atomic_store_8' > | collect2: error: ld returned 1 exit status > | make[2]: *** [Makefile:350: ../bin/gcc/libgpac.so] Error 1 > > https://buildd.debian.org/status/fetch.php?pkg=gpac&arch=armel&ver=1.0.1%2Bdfsg1-2&stamp=1605999350&raw=0
Fix: --- debian/rules.old 2020-11-22 10:19:16.535559820 +0000 +++ debian/rules 2020-11-22 10:19:59.695166615 +0000 @@ -12,6 +12,10 @@ DEB_EXTRA_CONFIGURE_FLAGS += --cross-prefix=${DEB_HOST_GNU_TYPE}- endif +ifneq (,$(filter $(DEB_HOST_ARCH), armel riscv64)) + export DEB_LDFLAGS_MAINT_APPEND += -Wl,--no-as-needed -latomic -Wl,--as-needed +endif + %: dh $@ cu Adrian