$NetBSD$

* fix linking on Free and OpenBSD due to missing environ symbol

* get QOperatinSystemVersion using uname on Free and NetBSD

* fix avoiding the cmake archiving api when buildling with make

--- src/corelib/CMakeLists.txt.orig	2021-04-30 09:31:33.000000000 +0000
+++ src/corelib/CMakeLists.txt
@@ -424,8 +424,9 @@ qt_internal_extend_target(Core CONDITION
         "/BASE:0x67000000"
 )
 
-#### Keys ignored in scope 6:.:.:corelib.pro:FREEBSD OR OPENBSD:
-# QMAKE_LFLAGS_NOUNDEF = <EMPTY>
+if(FREEBSD OR OPENBSD)
+    target_link_options(Core PRIVATE "LINKER:--warn-unresolved-symbols")
+endif()
 
 qt_internal_extend_target(Core CONDITION QT_FEATURE_animation
     SOURCES
@@ -1141,7 +1142,8 @@ if(QT_FEATURE_mimetype AND QT_FEATURE_mi
     include(${CMAKE_CURRENT_SOURCE_DIR}/mimetypes/mimetypes_resources.cmake)
 
 # Generate qmimeprovider_database.cpp
-    set(qmimeprovider_db_output "${CMAKE_CURRENT_BINARY_DIR}/.rcc/qmimeprovider_database.cpp")
+    set(qmimeprovider_db_output_dir "${CMAKE_CURRENT_BINARY_DIR}/.rcc")
+    set(qmimeprovider_db_output "${qmimeprovider_db_output_dir}/qmimeprovider_database.cpp")
     if(CMAKE_VERSION VERSION_LESS 3.18 OR QT_AVOID_CMAKE_ARCHIVING_API)
         set(command_args "")
         set(mime_dir "${CMAKE_CURRENT_SOURCE_DIR}/mimetypes/mime")
@@ -1150,6 +1152,7 @@ if(QT_FEATURE_mimetype AND QT_FEATURE_mi
             list(APPEND command_args "${mime_dir}/generate.bat")
             list(APPEND command_depends "${mime_dir}/generate.bat" "${mime_dir}/hexdump.ps1" )
         else()
+            file(MAKE_DIRECTORY ${qmimeprovider_db_output_dir})
             list(APPEND command_args perl "${mime_dir}/generate.pl" )
         endif()
 
