gnuradio icon indicating copy to clipboard operation
gnuradio copied to clipboard

config.h included in very many places, nearly use nowhere

Open marcusmueller opened this issue 2 years ago • 4 comments

What happened?

for historical reasons, we've got

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

all over the place.

And luckily, we nearly never need that.

So, in the interest of code hygiene, we should remove that

System Information

n/a

GNU Radio Version

3.11-git (main)

Specific Version

main

Steps to Reproduce the Problem

Files that include config.h, but use none of the defines in config.h:

rg --files-without-match \(TRY_SHM_VMCIRCBUF\|GR_PERFORMANCE_COUNTERS\|GR_CTRLPORT\|GR_RPCSERVER_ENABLED\|GR_RPCSERVER_THRIFT\|THRIFT_HAS_VERSION_H\|THRIFT_HAS_THREADFACTORY_H\|GR_MPLIB_GMP\|GR_MPLIB_MPIR\) $(rg -l '#include.*config\.h')

Relevant log output

more than 600 file ```text gr-zeromq/lib/push_msg_sink_impl.cc gr-zeromq/lib/push_sink_impl.cc gr-zeromq/lib/req_source_impl.cc gr-zeromq/lib/rep_sink_impl.cc gr-zeromq/lib/rep_msg_sink_impl.cc gr-zeromq/lib/pub_msg_sink_impl.cc gr-zeromq/lib/pub_sink_impl.cc gr-zeromq/lib/pull_source_impl.cc gr-qtgui/lib/number_sink_impl.cc gr-zeromq/lib/req_msg_source_impl.cc gr-zeromq/lib/sub_source_impl.cc gr-zeromq/lib/pull_msg_source_impl.cc gr-zeromq/lib/sub_msg_source_impl.cc gr-zeromq/lib/base_impl.cc gr-wavelet/lib/squash_ff_impl.cc gr-wavelet/lib/wavelet_ff_impl.cc gr-wavelet/lib/wvps_ff_impl.cc gr-qtgui/lib/vector_sink_f_impl.cc gr-qtgui/lib/time_raster_sink_b_impl.cc gr-video-sdl/lib/sink_uc_impl.cc gr-video-sdl/lib/sink_s_impl.cc gr-digital/lib/binary_slicer_fb_impl.cc gr-digital/lib/clock_recovery_mm_cc_impl.cc gr-qtgui/lib/edit_box_msg_impl.cc gr-digital/lib/chunks_to_symbols_impl.cc gr-qtgui/lib/freq_sink_f_impl.cc gr-qtgui/lib/histogram_sink_f_impl.cc gr-qtgui/lib/sink_c_impl.cc gr-qtgui/lib/ber_sink_b_impl.cc gr-qtgui/lib/eye_sink_f_impl.cc gr-qtgui/lib/time_raster_sink_f_impl.cc gr-digital/lib/msk_timing_recovery_cc_impl.cc gr-digital/lib/clock_recovery_mm_ff_impl.cc gr-qtgui/lib/freq_sink_c_impl.cc gr-qtgui/lib/time_sink_f_impl.cc gr-digital/lib/constellation_decoder_cb_impl.cc gr-digital/lib/clock_tracking_loop.cc gr-qtgui/lib/waterfall_sink_f_impl.cc gr-digital/lib/crc32_bb_impl.cc gr-qtgui/lib/const_sink_c_impl.cc gr-digital/lib/ofdm_equalizer_base.cc gr-digital/lib/symbol_sync_ff_impl.cc gr-digital/lib/constellation_soft_decoder_cf_impl.cc gr-digital/lib/correlate_access_code_bb_ts_impl.cc gr-digital/lib/corr_est_cc_impl.cc gr-digital/lib/correlate_access_code_tag_bb_impl.cc gr-qtgui/lib/time_sink_c_impl.cc gr-qtgui/lib/waterfall_sink_c_impl.cc gr-digital/lib/cpmmod_bc_impl.cc gr-digital/lib/descrambler_bb_impl.cc gr-digital/lib/constellation_encoder_bc_impl.cc gr-digital/lib/diff_encoder_bb_impl.cc gr-digital/lib/framer_sink_1_impl.cc gr-digital/lib/header_format_base.cc gr-digital/lib/diff_phasor_cc_impl.cc gr-digital/lib/meas_evm_cc_impl.cc gr-digital/lib/header_payload_demux_impl.cc gr-digital/lib/ofdm_chanest_vcvc_impl.cc gr-digital/lib/symbol_sync_cc_impl.cc gr-digital/lib/protocol_parser_b_impl.cc gr-digital/lib/ofdm_frame_equalizer_vcvc_impl.cc gr-digital/lib/packet_header_ofdm.cc gr-digital/lib/protocol_formatter_bb_impl.cc gr-digital/lib/pn_correlator_cc_impl.cc gr-digital/lib/scrambler_bb_impl.cc gr-digital/lib/probe_density_b_impl.cc gr-digital/lib/ofdm_equalizer_static.cc gr-digital/lib/crc_append_impl.cc gr-digital/lib/packet_sink_impl.cc gr-digital/lib/ofdm_equalizer_simpledfe.cc gr-uhd/lib/rfnoc_duc_impl.cc gr-digital/lib/crc_check_impl.cc gr-digital/lib/packet_headerparser_b_impl.cc gr-digital/lib/ofdm_sync_sc_cfb_impl.cc gr-digital/lib/probe_mpsk_snr_est_c_impl.cc gr-digital/lib/pfb_clock_sync_fff_impl.cc gr-digital/lib/qa_header_format.cc gr-digital/lib/packet_header_default.cc gr-digital/lib/ofdm_serializer_vcc_impl.cc gr-digital/lib/packet_headergenerator_bb_impl.cc gr-digital/lib/linear_equalizer_impl.cc gr-digital/lib/protocol_formatter_async_impl.cc gr-digital/lib/timing_error_detector.cc gr-digital/lib/ofdm_cyclic_prefixer_impl.cc gr-digital/lib/qa_header_buffer.cc gr-digital/lib/header_format_crc.cc gr-digital/lib/crc16_async_bb_impl.cc gr-digital/lib/mpsk_snr_est.cc gr-digital/lib/modulate_vector.cc gr-digital/lib/map_bb_impl.cc gr-digital/lib/ofdm_carrier_allocator_cvc_impl.cc gr-digital/lib/mpsk_snr_est_cc_impl.cc gr-digital/lib/interpolating_resampler.cc gr-digital/lib/additive_scrambler_bb_impl.cc gr-digital/lib/header_format_default.cc gr-uhd/lib/rfnoc_graph_impl.cc gr-digital/lib/hdlc_deframer_bp_impl.cc gr-digital/lib/header_format_counter.cc gr-digital/lib/header_format_ofdm.cc gr-digital/lib/glfsr_source_f_impl.cc gr-digital/lib/crc.cc gr-digital/lib/glfsr_source_b_impl.cc gr-digital/lib/fll_band_edge_cc_impl.cc gr-digital/lib/decision_feedback_equalizer_impl.cc gr-digital/lib/hdlc_framer_pb_impl.cc gr-digital/lib/crc32_async_bb_impl.cc gr-qtgui/lib/eye_sink_c_impl.cc gr-digital/lib/diff_decoder_bb_impl.cc gr-digital/lib/correlate_access_code_ff_ts_impl.cc gr-digital/lib/correlate_access_code_bb_impl.cc gr-digital/lib/header_buffer.cc gr-digital/lib/burst_shaper_impl.cc gr-uhd/lib/rfnoc_block_generic_impl.cc gr-qtgui/lib/sink_f_impl.cc gr-uhd/lib/rfnoc_rx_radio_impl.cc gr-digital/lib/correlate_access_code_tag_ff_impl.cc gr-uhd/lib/rfnoc_rx_streamer_impl.cc gr-uhd/lib/rfnoc_block.cc gr-dtv/include/gnuradio/dtv/dvbt2_pilotgenerator_cc.h gr-uhd/lib/rfnoc_tx_streamer_impl.cc gr-uhd/include/gnuradio/uhd/api.h gr-dtv/include/gnuradio/dtv/dvbt2_freqinterleaver_cc.h gr-dtv/include/gnuradio/dtv/dvbt_reference_signals.h gr-dtv/include/gnuradio/dtv/catv_frame_sync_enc_bb.h gr-uhd/lib/rfnoc_tx_radio_impl.cc gr-dtv/include/gnuradio/dtv/dvbs2_modulator_bc.h gr-dtv/include/gnuradio/dtv/dvb_bbheader_bb.h gr-dtv/include/gnuradio/dtv/catv_randomizer_bb.h gr-dtv/include/gnuradio/dtv/dvbt2_framemapper_cc.h gr-dtv/include/gnuradio/dtv/dvbs2_physical_cc.h gr-dtv/include/gnuradio/dtv/dvb_ldpc_bb.h gr-digital/lib/constellation.cc gr-dtv/include/gnuradio/dtv/dvbt2_paprtr_cc.h gr-dtv/include/gnuradio/dtv/dvbt_inner_coder.h gr-uhd/lib/rfnoc_ddc_impl.cc gr-dtv/include/gnuradio/dtv/dvbt_map.h gr-dtv/include/gnuradio/dtv/dvbt2_interleaver_bb.h gr-dtv/include/gnuradio/dtv/dvbt_demod_reference_signals.h gr-dtv/include/gnuradio/dtv/dvbt2_p1insertion_cc.h gr-dtv/include/gnuradio/dtv/dvbt2_modulator_bc.h gr-dtv/include/gnuradio/dtv/dvbt2_cellinterleaver_cc.h gr-dtv/include/gnuradio/dtv/catv_trellis_enc_bb.h gr-dtv/include/gnuradio/dtv/dvbt2_miso_cc.h gr-dtv/include/gnuradio/dtv/dvbt_symbol_inner_interleaver.h gr-dtv/include/gnuradio/dtv/dvbt_bit_inner_interleaver.h gr-dtv/include/gnuradio/dtv/dvbt_viterbi_decoder.h gr-dtv/include/gnuradio/dtv/dvbt_bit_inner_deinterleaver.h gr-dtv/include/gnuradio/dtv/dvbs2_interleaver_bb.h gr-dtv/lib/dvbt2/dvbt2_p1insertion_cc_impl.cc gr-dtv/include/gnuradio/dtv/dvb_bch_bb.h gr-dtv/python/dtv/bindings/catv_config_python.cc gr-dtv/python/dtv/bindings/dvbs2_config_python.cc gr-dtv/python/dtv/bindings/dvbt_config_python.cc gr-dtv/include/gnuradio/dtv/dvbt_demap.h gr-dtv/lib/dvb/dvb_bbscrambler_bb_impl.cc gr-dtv/lib/dvb/dvb_bbheader_bb_impl.cc gr-dtv/python/dtv/bindings/dvbt2_config_python.cc gr-dtv/lib/catv/catv_frame_sync_enc_bb_impl.cc gr-dtv/include/gnuradio/dtv/dvb_bbscrambler_bb.h gr-dtv/lib/catv/catv_trellis_enc_bb_impl.cc gr-dtv/lib/atsc/atsc_deinterleaver_impl.cc gr-dtv/python/dtv/bindings/dvb_config_python.cc gr-dtv/lib/catv/catv_randomizer_bb_impl.cc gr-dtv/lib/dvbt/dvbt_demap_impl.cc gr-dtv/lib/dvbt/dvbt_energy_dispersal_impl.cc gr-dtv/lib/dvb/dvb_bch_bb_impl.cc gr-dtv/lib/catv/catv_transport_framing_enc_bb_impl.cc gr-dtv/lib/dvbt2/dvbt2_interleaver_bb_impl.cc gr-dtv/lib/dvbt2/dvbt2_modulator_bc_impl.cc gr-dtv/lib/dvbt2/dvbt2_freqinterleaver_cc_impl.cc gr-dtv/lib/dvbs2/dvbs2_physical_cc_impl.cc gr-dtv/lib/catv/catv_reed_solomon_enc_bb_impl.cc gr-dtv/lib/dvbt2/dvbt2_miso_cc_impl.cc gr-dtv/lib/dvbt/dvbt_viterbi_decoder_impl.cc gr-dtv/lib/dvbt/dvbt_reed_solomon_dec_impl.cc gr-dtv/lib/dvbt/dvbt_reference_signals_impl.cc gr-dtv/lib/dvbt2/dvbt2_framemapper_cc_impl.cc gr-dtv/lib/dvbt2/dvbt2_cellinterleaver_cc_impl.cc gr-dtv/lib/dvbt/dvbt_convolutional_deinterleaver_impl.cc gr-dtv/lib/dvbt/dvbt_demod_reference_signals_impl.cc gr-dtv/lib/dvbt2/dvbt2_paprtr_cc_impl.cc gr-dtv/lib/dvbt/dvbt_configure.cc gr-dtv/lib/dvbt/dvbt_convolutional_interleaver_impl.cc gr-dtv/lib/dvbs2/dvbs2_modulator_bc_impl.cc gr-dtv/lib/dvbt/dvbt_ofdm_sym_acquisition_impl.cc gr-dtv/lib/dvbt/dvbt_bit_inner_deinterleaver_impl.cc gr-dtv/lib/dvbt/dvbt_configure.h gr-dtv/lib/atsc/atsc_rs_encoder_impl.cc gr-dtv/lib/dvbt/dvbt_reed_solomon_enc_impl.cc gr-dtv/lib/dvbt/dvbt_map_impl.cc gr-dtv/lib/dvbt/dvbt_energy_descramble_impl.cc gr-dtv/lib/atsc/atsc_pad_impl.cc gr-dtv/lib/atsc/atsc_randomizer_impl.cc gr-dtv/lib/atsc/atsc_depad_impl.cc gr-dtv/lib/dvbt2/dvbt2_pilotgenerator_cc_impl.cc gr-dtv/lib/atsc/atsc_derandomizer_impl.cc gr-dtv/lib/dvbs2/dvbs2_interleaver_bb_impl.cc gr-dtv/lib/atsc/atsc_fs_checker_impl.cc gr-dtv/lib/dvbt/dvbt_symbol_inner_interleaver_impl.cc gr-dtv/lib/atsc/atsc_fpll_impl.cc gr-dtv/lib/atsc/atsc_field_sync_mux_impl.cc gr-dtv/lib/dvbt/dvbt_inner_coder_impl.cc gr-dtv/lib/dvbt/dvbt_bit_inner_interleaver_impl.cc gr-trellis/lib/metrics_impl.cc gr-trellis/lib/siso_f_impl.cc gr-trellis/lib/pccc_encoder_impl.cc gr-dtv/lib/atsc/atsc_sync_impl.cc gr-trellis/lib/encoder_impl.cc gr-audio/lib/portaudio/portaudio_sink.cc gr-trellis/lib/sccc_decoder_combined_blk_impl.cc gr-dtv/lib/atsc/atsc_interleaver_impl.cc gr-trellis/lib/constellation_metrics_cf_impl.cc gr-trellis/lib/permutation_impl.cc gr-trellis/lib/siso_combined_f_impl.cc gr-trellis/lib/pccc_decoder_combined_blk_impl.cc gr-trellis/lib/viterbi_impl.cc gr-dtv/lib/atsc/atsc_trellis_encoder_impl.cc gr-audio/lib/jack/jack_impl.cc gr-trellis/lib/sccc_decoder_blk_impl.cc gr-audio/lib/alsa/alsa_impl.cc gr-audio/lib/portaudio/portaudio_impl.cc gr-audio/lib/jack/jack_sink.cc gr-trellis/lib/sccc_encoder_impl.cc gr-audio/lib/osx/osx_sink.cc gr-blocks/lib/file_sink_base.cc gr-audio/lib/osx/osx_impl.cc gr-audio/lib/jack/jack_source.cc gr-trellis/lib/viterbi_combined_impl.cc gr-trellis/lib/pccc_decoder_blk_impl.cc gr-audio/lib/alsa/alsa_sink.cc gr-audio/lib/alsa/alsa_source.cc gr-audio/lib/windows/windows_sink.cc gr-audio/lib/windows/windows_source.cc gr-audio/lib/oss/oss_sink.cc gr-blocks/lib/exponentiate_const_cci_impl.cc gr-blocks/lib/file_meta_source_impl.cc gr-blocks/lib/vector_to_stream_impl.cc gr-audio/lib/osx/osx_source.cc gr-blocks/lib/interleave_impl.cc gr-blocks/lib/magphase_to_complex_impl.cc gr-audio/lib/portaudio/portaudio_source.cc gr-blocks/lib/interleaved_short_to_complex_impl.cc gr-blocks/lib/message_debug_impl.cc gr-blocks/lib/file_source_impl.cc gr-audio/lib/oss/oss_source.cc gr-blocks/lib/tag_gate_impl.cc gr-blocks/lib/qa_block_tags.cc gr-blocks/lib/qa_gr_block.cc gr-blocks/lib/regenerate_bb_impl.cc gr-blocks/lib/qa_rotator.cc gr-blocks/lib/mute_impl.cc gr-blocks/lib/rms_cf_impl.cc gr-blocks/lib/peak_detector_impl.cc gr-blocks/lib/qa_set_msg_handler.cc gr-blocks/lib/rotator_cc_impl.cc gr-blocks/lib/blockinterleaver_xx_impl.cc gr-blocks/lib/vco_c_impl.cc gr-blocks/lib/wavfile_sink_impl.cc gr-blocks/lib/rms_ff_impl.cc gr-blocks/lib/repeat_impl.cc gr-blocks/lib/test_tag_variable_rate_ff_impl.cc gr-blocks/lib/wavfile_source_impl.cc gr-blocks/lib/vector_map_impl.cc gr-blocks/lib/short_to_float_impl.cc gr-blocks/lib/tagged_stream_mux_impl.cc gr-blocks/lib/stream_mux_impl.cc gr-blocks/lib/qa_gr_hier_block2.cc gr-blocks/lib/sample_and_hold_impl.cc gr-blocks/lib/host_buffer_copy_impl.cc gr-blocks/lib/tags_strobe_impl.cc gr-blocks/lib/stream_demux_impl.cc gr-blocks/lib/stretch_ff_impl.cc gr-blocks/lib/qa_gr_top_block.cc gr-blocks/lib/skiphead_impl.cc gr-blocks/lib/short_to_char_impl.cc gr-blocks/lib/threshold_ff_impl.cc gr-blocks/lib/tagged_stream_multiply_length_impl.cc gr-blocks/lib/tagged_stream_align_impl.cc gr-blocks/lib/xor_blk_impl.cc gr-blocks/lib/tagged_file_sink_impl.cc gr-blocks/lib/stream_to_tagged_stream_impl.cc gr-blocks/lib/unpack_k_bits.cc gr-blocks/lib/vector_to_streams_impl.cc gr-blocks/lib/tsb_vector_sink_impl.cc gr-blocks/lib/vco_f_impl.cc gr-blocks/lib/vector_source_impl.cc gr-blocks/lib/vector_sink_impl.cc gr-blocks/lib/streams_to_vector_impl.cc gr-blocks/lib/stream_to_vector_impl.cc gr-blocks/lib/streams_to_stream_impl.cc gr-blocks/lib/vector_insert_impl.cc gr-blocks/lib/unpack_k_bits_bb_impl.cc gr-blocks/lib/uchar_to_float_impl.cc gr-blocks/lib/unpacked_to_packed_impl.cc gr-blocks/lib/sub_impl.cc gr-blocks/lib/probe_signal_impl.cc gr-blocks/lib/plateau_detector_fb_impl.cc gr-blocks/lib/repack_bits_bb_impl.cc gr-blocks/lib/stream_to_streams_impl.cc gr-blocks/lib/peak_detector2_fb_impl.cc gr-blocks/lib/qa_gr_hier_block2_derived.cc gr-blocks/lib/null_sink_impl.cc gr-blocks/lib/probe_signal_v_impl.cc gr-blocks/lib/pack_k_bits_bb_impl.cc gr-blocks/lib/patterned_interleaver_impl.cc gr-blocks/lib/lfsr_32k_source_s_impl.cc gr-blocks/lib/tag_share_impl.cc gr-blocks/lib/correctiq_man_impl.cc gr-blocks/lib/qa_gr_flowgraph.cc gr-blocks/lib/packed_to_unpacked_impl.cc gr-blocks/lib/multiply_matrix_impl.cc gr-blocks/lib/phase_shift_impl.cc gr-blocks/lib/pack_k_bits.cc gr-blocks/lib/nlog10_ff_impl.cc gr-blocks/lib/int_to_float_impl.cc gr-blocks/lib/or_blk_impl.cc gr-blocks/lib/multiply_impl.cc gr-blocks/lib/multiply_const_impl.cc gr-blocks/lib/multiply_conjugate_cc_impl.cc gr-blocks/lib/moving_average_impl.cc gr-blocks/lib/multiply_const_v_impl.cc gr-blocks/lib/message_strobe_random_impl.cc gr-blocks/lib/message_strobe_impl.cc gr-blocks/lib/correctiq_swapiq_impl.cc gr-blocks/lib/interleaved_char_to_complex_impl.cc gr-blocks/lib/keep_one_in_n_impl.cc gr-blocks/lib/head_impl.cc gr-blocks/lib/min_blk_impl.cc gr-vocoder/lib/ulaw_decode_bs_impl.cc gr-blocks/lib/deinterleave_impl.cc gr-blocks/lib/float_to_uchar_impl.cc gr-blocks/lib/float_to_short_impl.cc gr-blocks/lib/max_blk_impl.cc gr-blocks/lib/float_to_int_impl.cc gr-blocks/lib/float_to_char_impl.cc gr-blocks/lib/null_source_impl.cc gr-blocks/lib/float_array_to_int.cc gr-blocks/lib/not_blk_impl.cc gr-blocks/lib/file_descriptor_source_impl.cc gr-blocks/lib/float_to_complex_impl.cc gr-blocks/lib/file_descriptor_sink_impl.cc gr-blocks/lib/endian_swap_impl.cc gr-blocks/lib/divide_impl.cc gr-blocks/lib/integrate_impl.cc gr-blocks/lib/float_array_to_uchar.cc gr-blocks/lib/abs_blk_impl.cc gr-blocks/lib/add_blk_impl.cc gr-blocks/lib/correctiq_auto_impl.cc gr-blocks/lib/file_sink_impl.cc gr-blocks/lib/delay_impl.cc gr-blocks/lib/conjugate_cc_impl.cc gr-blocks/lib/complex_to_real_impl.cc gr-blocks/lib/complex_to_magphase_impl.cc gr-blocks/lib/complex_to_mag_squared_impl.cc gr-blocks/lib/control_loop.cc gr-blocks/lib/complex_to_imag_impl.cc gr-blocks/lib/complex_to_interleaved_short_impl.cc gr-blocks/lib/complex_to_float_impl.cc gr-blocks/lib/file_meta_sink_impl.cc gr-blocks/lib/complex_to_arg_impl.cc gr-blocks/lib/correctiq_impl.cc gr-blocks/lib/check_lfsr_32k_s_impl.cc gr-blocks/lib/argmax_impl.cc gr-blocks/lib/burst_tagger_impl.cc gr-blocks/lib/annotator_raw_impl.cc gr-blocks/lib/complex_to_mag_impl.cc gr-blocks/lib/char_to_float_impl.cc gr-blocks/lib/and_const_impl.cc gr-blocks/lib/annotator_alltoall_impl.cc gr-blocks/lib/and_blk_impl.cc gr-blocks/lib/add_const_v_impl.cc gr-blocks/tests/benchmark_nco.cc gr-blocks/lib/char_to_short_impl.cc gr-pdu/lib/pdu_remove_impl.cc gr-blocks/lib/annotator_1to1_impl.cc gr-pdu/lib/pdu_set_impl.cc gr-vocoder/lib/ulaw_encode_sb_impl.cc gr-pdu/lib/pdu_filter_impl.cc gr-vocoder/lib/codec2_decode_ps_impl.cc gr-vocoder/lib/g721_encode_sb_impl.cc gr-blocks/tests/benchmark_vco.cc gr-pdu/lib/random_pdu_impl.cc gr-pdu/lib/tagged_stream_to_pdu_impl.cc gr-pdu/lib/pdu_to_tagged_stream_impl.cc gr-pdu/lib/pdu_split_impl.cc gr-vocoder/lib/codec2_encode_sp_impl.cc gr-vocoder/lib/freedv_tx_ss_impl.cc gr-pdu/lib/time_delta_impl.cc gr-vocoder/lib/cvsd_encode_sb_impl.cc gr-vocoder/lib/codec2.cc gr-vocoder/lib/g721_decode_bs_impl.cc gr-pdu/lib/tags_to_pdu_impl.cc gr-vocoder/lib/freedv_rx_ss_impl.cc gr-vocoder/lib/g723_24_decode_bs_impl.cc gr-vocoder/lib/g723_40_decode_bs_impl.cc gr-vocoder/lib/g723_24_encode_sb_impl.cc gr-pdu/lib/add_system_time_impl.cc gr-vocoder/lib/freedv_api.cc gr-pdu/lib/take_skip_to_pdu_impl.cc gr-vocoder/lib/gsm_fr_decode_ps_impl.cc gr-vocoder/lib/g723_40_encode_sb_impl.cc gr-vocoder/lib/cvsd_decode_bs_impl.cc gr-analog/lib/pwr_squelch_cc_impl.cc gr-analog/lib/random_uniform_source_impl.cc gr-vocoder/lib/alaw_decode_bs_impl.cc gr-vocoder/lib/gsm_fr_encode_sp_impl.cc gr-analog/lib/agc_cc_impl.cc gr-pdu/lib/pdu_to_stream_impl.cc gr-vocoder/lib/alaw_encode_sb_impl.cc gr-analog/lib/pll_carriertracking_cc_impl.cc gr-analog/lib/feedforward_agc_cc_impl.cc gr-analog/lib/fmdet_cf_impl.cc gr-analog/lib/quadrature_demod_cf_impl.cc gr-analog/lib/probe_avg_mag_sqrd_c_impl.cc gr-analog/lib/sig_source_impl.cc gr-analog/lib/probe_avg_mag_sqrd_f_impl.cc gr-analog/lib/cpfsk_bc_impl.cc gr-analog/lib/pll_freqdet_cf_impl.cc gr-analog/lib/phase_modulator_fc_impl.cc gr-analog/lib/agc2_ff_impl.cc gr-analog/lib/noise_source_impl.cc gr-analog/lib/fastnoise_source_impl.cc gr-analog/lib/agc3_cc_impl.cc gr-analog/lib/cpm.cc gr-analog/lib/ctcss_squelch_ff_impl.cc gr-analog/lib/squelch_base_ff_impl.cc gr-analog/lib/probe_avg_mag_sqrd_cf_impl.cc gr-analog/lib/agc_ff_impl.cc gr-analog/lib/dpll_bb_impl.cc gr-analog/lib/agc2_cc_impl.cc gr-analog/lib/squelch_base_cc_impl.cc gr-analog/lib/simple_squelch_cc_impl.cc gr-filter/lib/qa_mmse_interp_differentiator_ff.cc gr-iio/lib/attr_source_impl.cc gr-iio/lib/dds_control_impl.cc gr-analog/lib/pwr_squelch_ff_impl.cc gr-iio/lib/fmcomms5_sink_impl.cc gr-iio/lib/fmcomms5_source_impl.cc gr-iio/lib/device_sink_impl.cc gr-iio/lib/fmcomms2_source_impl.cc gr-iio/lib/fmcomms2_sink_impl.cc gr-analog/lib/rail_ff_impl.cc gr-iio/lib/device_source_impl.cc gr-fec/lib/fec_mtrx_impl.cc gr-fec/lib/polar_decoder_sc.cc gr-iio/lib/attr_updater_impl.cc gr-fec/lib/polar_common.cc gr-fec/lib/decode_ccsds_27_fb_impl.cc gr-fec/lib/generic_decoder.cc gr-analog/lib/pll_refout_cc_impl.cc gr-fec/lib/conv_bit_corr_bb_impl.cc gr-fec/lib/decoder_impl.cc gr-fec/lib/cc_decoder_impl.cc gr-iio/lib/attr_sink_impl.cc gr-fec/lib/encode_ccsds_27_bb_impl.cc gr-fec/lib/viterbi/metrics.cc gr-fec/lib/puncture_ff_impl.cc gr-fec/lib/puncture_bb_impl.cc gr-fec/lib/async_decoder_impl.cc gr-fec/lib/repetition_decoder_impl.cc gr-blocks/lib/complex_to_interleaved_char_impl.cc gr-fec/lib/tagged_decoder_impl.cc gr-fec/lib/dummy_decoder_impl.cc gr-fec/lib/polar_decoder_sc_list.cc gr-fec/lib/ldpc_G_matrix_impl.cc gr-fec/lib/generic_encoder.cc gr-fec/lib/cc_encoder_impl.cc gr-fec/lib/ccsds_encoder_impl.cc gr-fec/lib/polar_encoder.cc gr-fec/lib/reed-solomon/rstest.c gr-fec/lib/polar_encoder_systematic.cc gr-fec/lib/polar_decoder_common.cc gr-fec/lib/reed-solomon/exercise.c gr-fec/lib/depuncture_bb_impl.cc gr-fec/lib/polar_decoder_sc_systematic.cc gr-fec/lib/ldpc_gen_mtrx_encoder_impl.cc gr-fec/lib/repetition_encoder_impl.cc gr-fec/lib/ldpc_H_matrix_impl.cc gr-fec/lib/tagged_encoder_impl.cc gr-fec/lib/ldpc_bit_flip_decoder_impl.cc gr-fec/lib/encoder_impl.cc gr-fec/lib/dummy_encoder_impl.cc gr-network/lib/tuntap_pdu_impl.cc gr-network/lib/stream_pdu_base.cc gr-dtv/lib/dvb/dvb_ldpc_bb_impl.cc gr-network/lib/udp_source_impl.cc gr-fec/lib/async_encoder_impl.cc gr-network/lib/tcp_sink_impl.cc gr-network/lib/udp_sink_impl.cc gr-filter/lib/iir_filter_ccz_impl.cc gr-filter/lib/fir_filter_blk_impl.cc gr-filter/lib/iir_filter_ffd_impl.cc gr-network/lib/socket_pdu_impl.cc gr-filter/lib/filterbank.cc gr-filter/lib/firdes.cc gr-filter/lib/iir_filter_ccf_impl.cc gr-fec/lib/ber_bf_impl.cc gr-filter/lib/mmse_resampler_ff_impl.cc gr-filter/lib/fft_filter_ccc_impl.cc gr-filter/lib/mmse_fir_interpolator_ff.cc gr-filter/lib/dc_blocker_ff_impl.cc gr-filter/lib/pfb_arb_resampler_ccc_impl.cc gr-filter/lib/interp_fir_filter_impl.cc gr-filter/lib/pfb_arb_resampler_ccf_impl.cc gr-filter/lib/pfb_channelizer_ccf_impl.cc gr-filter/lib/qa_mmse_interp_differentiator_cc.cc gr-network/lib/tcp_connection.cc gr-filter/lib/iir_filter_ccc_impl.cc gr-filter/lib/qa_fir_filter_with_buffer.cc gr-filter/lib/pfb_interpolator_ccf_impl.cc gr-filter/lib/qa_mmse_fir_interpolator_cc.cc gr-filter/lib/pfb_arb_resampler_fff_impl.cc gr-filter/lib/qa_mmse_fir_interpolator_ff.cc gr-filter/lib/rational_resampler_impl.cc gr-filter/lib/polyphase_filterbank.cc gr-filter/lib/single_pole_iir_filter_cc_impl.cc gr-filter/lib/filter_delay_fc_impl.cc gr-filter/lib/pfb_decimator_ccf_impl.cc gr-filter/lib/fft_filter_ccf_impl.cc gr-filter/lib/freq_xlating_fir_filter_impl.cc gr-filter/lib/fft_filter_fff_impl.cc gr-filter/lib/pm_remez.cc gr-filter/lib/single_pole_iir_filter_ff_impl.cc gr-filter/lib/mmse_resampler_cc_impl.cc gr-filter/lib/filterbank_vcvcf_impl.cc gr-filter/lib/fft_filter.cc gr-filter/lib/hilbert_fc_impl.cc gr-filter/lib/ival_decimator_impl.cc gr-filter/lib/mmse_fir_interpolator_cc.cc gr-filter/lib/mmse_interp_differentiator_cc.cc gr-soapy/lib/block_impl.cc gr-filter/lib/dc_blocker_cc_impl.cc gr-filter/lib/mmse_interp_differentiator_ff.cc gr-soapy/lib/source_impl.cc gr-fft/lib/fft_v_fftw.cc gr-filter/lib/iir_filter_ccd_impl.cc gr-fft/lib/window.cc gr-soapy/lib/sink_impl.cc gr-filter/lib/pfb_arb_resampler.cc gr-fft/lib/goertzel.cc gr-filter/lib/pfb_synthesizer_ccf_impl.cc gnuradio-runtime/lib/messages/msg_accepter.cc gr-fft/lib/goertzel_fc_impl.cc gr-filter/lib/fir_filter_with_buffer.cc gnuradio-runtime/lib/sync_decimator.cc gnuradio-runtime/lib/messages/msg_producer.cc gr-fft/lib/qa_fft_shift.cc gnuradio-runtime/lib/math/fxpt.cc gnuradio-runtime/lib/pmt/pmt_unv.cc gnuradio-runtime/lib/block_detail.cc gnuradio-runtime/lib/qa_host_buffer.cc gnuradio-runtime/lib/pmt/pmt.cc gnuradio-runtime/lib/pmt/pmt_io.cc gnuradio-runtime/lib/math/qa_fxpt_nco.cc gnuradio-runtime/lib/math/qa_fxpt.cc gnuradio-runtime/lib/math/qa_fast_atan2f.cc gnuradio-runtime/lib/math/qa_sincos.cc gnuradio-runtime/lib/math/random.cc gnuradio-runtime/lib/messages/msg_accepter_msgq.cc gnuradio-runtime/lib/pmt/pmt_pool.cc gnuradio-runtime/lib/messages/msg_queue.cc gnuradio-runtime/lib/hier_block2.cc gnuradio-runtime/lib/math/qa_fxpt_vco.cc gnuradio-runtime/lib/msg_handler.cc gnuradio-runtime/lib/thread/thread_body_wrapper.cc gnuradio-runtime/lib/message.cc gnuradio-runtime/lib/qa_io_signature.cc gnuradio-runtime/lib/buffer_reader_sm.cc gnuradio-runtime/lib/top_block_impl.cc gnuradio-runtime/lib/pmt/pmt_serialize.cc gnuradio-runtime/lib/realtime.cc gnuradio-runtime/lib/qa_vmcircbuf.cc gnuradio-runtime/lib/logger.cc gnuradio-runtime/lib/buffer_single_mapped.cc gnuradio-runtime/lib/sptr_magic.cc gnuradio-runtime/lib/vmcircbuf_createfilemapping.cc gnuradio-runtime/lib/scheduler_tpb.cc gnuradio-runtime/lib/pagesize.cc gnuradio-runtime/lib/sync_block.cc gnuradio-runtime/lib/io_signature.cc gnuradio-runtime/lib/qa_buffer.cc gnuradio-runtime/lib/pdu.cc gnuradio-runtime/lib/buffer_double_mapped.cc gnuradio-runtime/lib/hier_block2_detail.cc gnuradio-runtime/lib/buffer.cc gnuradio-runtime/lib/qa_logger.cc gnuradio-runtime/lib/sync_interpolator.cc gnuradio-runtime/lib/prefs.cc gnuradio-runtime/lib/vmcircbuf_mmap_shm_open.cc gnuradio-runtime/lib/tpb_detail.cc gnuradio-runtime/lib/vmcircbuf_sysv_shm.cc gnuradio-runtime/lib/vmcircbuf_prefs.cc gnuradio-runtime/lib/buffer_reader.cc gnuradio-runtime/lib/thread/thread.cc gnuradio-runtime/lib/scheduler.cc gnuradio-runtime/lib/realtime_impl.cc gnuradio-runtime/lib/local_sighandler.cc gnuradio-runtime/lib/vmcircbuf_mmap_tmpfile.cc gnuradio-runtime/lib/tpb_thread_body.cc gnuradio-runtime/lib/constants.cc.in gnuradio-runtime/lib/flowgraph.cc gnuradio-runtime/lib/basic_block.cc gnuradio-runtime/apps/gnuradio-config-info.cc gnuradio-runtime/lib/msg_queue.cc gnuradio-runtime/lib/msg_accepter.cc gnuradio-runtime/lib/tagged_stream_block.cc ```

marcusmueller avatar Jul 06 '22 18:07 marcusmueller

Yes!

mormj avatar Jul 06 '22 20:07 mormj

@mormj I'll need a bit of guidance on this one.

Turns out, at least on main we never set HAVE_CONFIG_H, so all of the includes are moot, and all of the things that are in config.h.in never are set anywhere where we check for them.

You can check, by placing a

#ifdef HAVE_CONFIG_H
#include <config.h>
#else
#warning "HAVE_CONFIG_H undefined"
#endif

in any of these files, e.g. in gnuradio/runtime/lib/qa_vmcircbuf.cc (I picked that because you can ask make/ninja to build that alone and it goes relatively quick, because it has not that many dependencies). I then simply searched for HAVE_CONFIG_H in our CMake code, and found it nowhere.

Since I can't remember that we set it anywhere, nor could remember removing it, I guess that means we've built for a long time without HAVE_CONFIG_H. I'm testing whether I'm missing something that's there on other platforms in #6005.

Two options:

  • oops. We fix that by defining HAVE_CONFIG_H or just saying, hey, we have config.h, always, because we have generated it in cmake, so let's just include it without that check. We still throw out the 600 instances where we include it without need.
  • oops. We figure this has been going on a while, and has hurt nobody. We remove all occurrences of HAVE_CONFIG_H, all inclusions of config.h, and figure out which code paths have been dead for good reason and should just be removed, as they've not been "necessary", and which parts of the should be "revived".

marcusmueller avatar Jul 10 '22 16:07 marcusmueller

ahahahahaa!

https://github.com/gnuradio/gnuradio/blob/53dd57ca8fb8bc929c2b4cef6384d14342ed49e7/gnuradio-runtime/include/gnuradio/rpcserver_selector.h#L11-L22

by virtue of rpcserver_selector, which gets included through basic_block.h, we always include gnuradio/config.h, in almost every source file.

marcusmueller avatar Jul 10 '22 17:07 marcusmueller

Not doing that decrufting on 3.10, unlikely to happen on main/3.11…

marcusmueller avatar Jan 31 '24 23:01 marcusmueller