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?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions