Skip to content

Bug: CMake configuration inconsistency/problem #2939

Description

@tgurr

This is an issue and not a support question which should be asked at https://forum.greenbone.net/?

  • This is an issue and not a support question

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

For a while now I wondered why my gvmd builds fail during linking if I try to enable e.g ENABLE_OPENVASD (but this also applies to other options like ENABLE_AGENTS, ENABLE_CONTAINER_SCANNING, etc.) by passing -DENABLE_OPENVASD:BOOL=TRUE

[...]
[100%] Linking C executable gvmd
cd /var/tmp/paludis/build/net-analyzer-gvmd-26.29.0/work/build/src && /usr/x86_64-pc-linux-gnu/bin/cmake -E cmake_link_script CMakeFiles/gvmd.dir/link.txt --verbose=1
/usr/bin/x86_64-pc-linux-gnu-cc -pipe -O2 -march=native  -Wall -D_BSD_SOURCE -D_ISOC99_SOURCE -D_SVID_SOURCE -D_DEFAULT_SOURCE -D_FILE_OFFSET_BITS=64  -O3 -DNDEBUG -Wformat -Wformat-security -D_FORTIFY_SOURCE=2 -fstack-protector  -Wl,-O1 -Wl,--as-needed CMakeFiles/gvmd.dir/main.c.o "CMakeFiles/all-gmp-obj.dir/gmp.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_base.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_configs.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_delete.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_get.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_integration_configs.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_license.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_logout.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_oci_image_targets.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_port_lists.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_report_applications.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_report_closed_cves.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_report_configs.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_report_cves.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_report_errors.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_report_formats.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_report_hosts.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_report_operating_systems.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_report_ports.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_report_tls_certificates.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_report_vulns.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_tickets.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_tls_certificates.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_agent_control_scan_agent_config.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_agent_groups.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_agents.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_agent_installer_instructions.c.o" "CMakeFiles/all-gmp-obj.dir/gmp_credential_stores.c.o" "CMakeFiles/all-manage-obj.dir/manage.c.o" "CMakeFiles/all-manage-obj.dir/manage_acl.c.o" "CMakeFiles/all-manage-obj.dir/manage_alerts.c.o" "CMakeFiles/all-manage-obj.dir/manage_asset_keys.c.o" "CMakeFiles/all-manage-obj.dir/manage_configs.c.o" "CMakeFiles/all-manage-obj.dir/manage_events.c.o" "CMakeFiles/all-manage-obj.dir/manage_filter_utils.c.o" "CMakeFiles/all-manage-obj.dir/manage_commands.c.o" "CMakeFiles/all-manage-obj.dir/manage_get.c.o" "CMakeFiles/all-manage-obj.dir/manage_groups.c.o" "CMakeFiles/all-manage-obj.dir/manage_http_scanner.c.o" "CMakeFiles/all-manage-obj.dir/manage_integration_configs.c.o" "CMakeFiles/all-manage-obj.dir/manage_license.c.o" "CMakeFiles/all-manage-obj.dir/manage_notes.c.o" "CMakeFiles/all-manage-obj.dir/manage_openvas.c.o" "CMakeFiles/all-manage-obj.dir/manage_openvasd.c.o" "CMakeFiles/all-manage-obj.dir/manage_osp.c.o" "CMakeFiles/all-manage-obj.dir/manage_overrides.c.o" "CMakeFiles/all-manage-obj.dir/manage_permissions.c.o" "CMakeFiles/all-manage-obj.dir/manage_port_lists.c.o" "CMakeFiles/all-manage-obj.dir/manage_preferences.c.o" "CMakeFiles/all-manage-obj.dir/manage_resources.c.o" "CMakeFiles/all-manage-obj.dir/manage_report_applications.c.o" "CMakeFiles/all-manage-obj.dir/manage_report_closed_cves.c.o" "CMakeFiles/all-manage-obj.dir/manage_report_configs.c.o" "CMakeFiles/all-manage-obj.dir/manage_report_cves.c.o" "CMakeFiles/all-manage-obj.dir/manage_report_errors.c.o" "CMakeFiles/all-manage-obj.dir/manage_report_formats.c.o" "CMakeFiles/all-manage-obj.dir/manage_report_hosts.c.o" "CMakeFiles/all-manage-obj.dir/manage_report_operating_systems.c.o" "CMakeFiles/all-manage-obj.dir/manage_report_ports.c.o" "CMakeFiles/all-manage-obj.dir/manage_report_tls_certificates.c.o" "CMakeFiles/all-manage-obj.dir/manage_report_vulns.c.o" "CMakeFiles/all-manage-obj.dir/manage_roles.c.o" "CMakeFiles/all-manage-obj.dir/manage_runtime_flags.c.o" "CMakeFiles/all-manage-obj.dir/manage_authentication.c.o" "CMakeFiles/all-manage-obj.dir/manage_settings.c.o" "CMakeFiles/all-manage-obj.dir/manage_tls_certificates.c.o" "CMakeFiles/all-manage-obj.dir/manage_utils.c.o" "CMakeFiles/all-manage-obj.dir/manage_migrators.c.o" "CMakeFiles/all-manage-obj.dir/manage_pg.c.o" "CMakeFiles/all-manage-obj.dir/manage_scan_handler.c.o" "CMakeFiles/all-manage-obj.dir/manage_scan_queue.c.o" "CMakeFiles/all-manage-obj.dir/manage_scanner_relays.c.o" "CMakeFiles/all-manage-obj.dir/manage_schedules.c.o" "CMakeFiles/all-manage-obj.dir/manage_oci_image_targets.c.o" "CMakeFiles/all-manage-obj.dir/manage_container_image_scanner.c.o" "CMakeFiles/all-manage-obj.dir/manage_tags.c.o" "CMakeFiles/all-manage-obj.dir/manage_targets.c.o" "CMakeFiles/all-manage-obj.dir/manage_users.c.o" "CMakeFiles/all-manage-obj.dir/manage_report_export_scheduler.c.o" "CMakeFiles/all-manage-obj.dir/manage_agent_common.c.o" "CMakeFiles/all-manage-obj.dir/manage_agent_groups.c.o" "CMakeFiles/all-manage-obj.dir/manage_agents.c.o" "CMakeFiles/all-manage-obj.dir/manage_agent_installer_instructions.c.o" "CMakeFiles/all-manage-obj.dir/manage_agent_control_scan_config.c.o" "CMakeFiles/all-manage-obj.dir/manage_credential_store_cyberark.c.o" "CMakeFiles/all-manage-obj.dir/manage_credential_stores.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_copy.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_alerts.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_assets.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_events.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_filters.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_groups.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_integration_configs.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_notes.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_nvts.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_secinfo.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_overrides.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_permissions.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_permissions_cache.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_port_lists.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_configs.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_report_applications.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_report_closed_cves.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_report_configs.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_report_errors.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_report_formats.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_resources.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_report_hosts.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_report_operating_systems.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_report_ports.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_report_tls_certificates.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_roles.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_scanner_relays.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_schedules.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_settings.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_tags.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_targets.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_tickets.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_tls_certificates.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_users.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_nvts_osp.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_nvts_openvasd.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_nvts_common.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_scan_queue.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_oci_image_targets.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_report_exports.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_agent_groups.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_agents.c.o" "CMakeFiles/all-manage-sql-obj.dir/manage_sql_credential_stores.c.o" "CMakeFiles/all-misc-obj.dir/debug_utils.c.o" "CMakeFiles/all-misc-obj.dir/gvmd.c.o" "CMakeFiles/all-misc-obj.dir/gvmd_config.c.o" "CMakeFiles/all-misc-obj.dir/gmpd.c.o" "CMakeFiles/all-misc-obj.dir/ipc.c.o" "CMakeFiles/all-misc-obj.dir/lsc_user.c.o" "CMakeFiles/all-misc-obj.dir/lsc_crypt.c.o" "CMakeFiles/all-misc-obj.dir/utils.c.o" "CMakeFiles/all-sql-obj.dir/sql.c.o" "CMakeFiles/all-sql-obj.dir/sql_pg.c.o" -o gvmd  -lm -L/usr/x86_64-pc-linux-gnu/lib -lgnutls -L/usr/x86_64-pc-linux-gnu/lib -lgpgme -Wl,-z,relro -Wl,-z,now /usr/x86_64-pc-linux-gnu/lib/libpq.so -L/usr/x86_64-pc-linux-gnu/lib -lbsd -L/usr/x86_64-pc-linux-gnu/lib -lcjson -L/usr/x86_64-pc-linux-gnu/lib -lglib-2.0 -L/usr/x86_64-pc-linux-gnu/lib -lgvm_agent_controller -L/usr/x86_64-pc-linux-gnu/lib -lgvm_base -L/usr/x86_64-pc-linux-gnu/lib -lgvm_util -L/usr/x86_64-pc-linux-gnu/lib -lgvm_osp -L/usr/x86_64-pc-linux-gnu/lib -lgvm_openvasd -L/usr/x86_64-pc-linux-gnu/lib -lgvm_gmp -L/usr/x86_64-pc-linux-gnu/lib -lgvm_http -L/usr/x86_64-pc-linux-gnu/lib -lgvm_http_scanner -L/usr/x86_64-pc-linux-gnu/lib -lgvm_cyberark -L/usr/x86_64-pc-linux-gnu/lib -lgvm_container_image_scanner -L/usr/x86_64-pc-linux-gnu/lib -lical -licalss -licalvcal -Wl,-z,relro -Wl,-z,now
/usr/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/bin/ld.bfd: CMakeFiles/all-manage-obj.dir/manage.c.o: in function `run_task':
manage.c:(.text+0x38c1): undefined reference to `handle_openvasd_scan_start'
/usr/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/bin/ld.bfd: manage.c:(.text+0x38f3): undefined reference to `handle_openvasd_scan'
/usr/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/bin/ld.bfd: manage.c:(.text+0x390b): undefined reference to `handle_openvasd_scan_end'
/usr/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/bin/ld.bfd: CMakeFiles/all-manage-obj.dir/manage_scan_handler.c.o: in function `fork_scan_handler':
manage_scan_handler.c:(.text+0x48b): undefined reference to `handle_openvasd_scan'
/usr/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/bin/ld.bfd: manage_scan_handler.c:(.text+0x5ed): undefined reference to `handle_openvasd_scan_start'
collect2: error: ld returned 1 exit status
make[2]: *** [src/CMakeFiles/gvmd.dir/build.make:381: src/gvmd] Error 1
make[1]: *** [CMakeFiles/Makefile2:415: src/CMakeFiles/gvmd.dir/all] Error 2
make: *** [Makefile:166: all] Error 2

It turned out that I need to pass -DENABLE_OPENVASD:STRING=1 which is kind of unusual (https://cmake.org/cmake/help/latest/prop_cache/TYPE.html). This also leads to e.g. the CMake gui not actually showing any options at all.

Image

Where for example gvm-libs appears to handle things correctly/normally already:

Image

Expected Behavior

Handle build options like CMake intends them to (and gvm-libs already does).

Steps To Reproduce

  1. Pass e.g. -DENABLE_OPENVASD:BOOL=TRUE
  2. See final linking step fail

Operating System

Exherbo Linux

Version

gvmd-26.29.0

Anything else?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions