From 1eca7b18192ed201fbae8f7207b262241a4f141e Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Thu, 23 Oct 2025 07:58:44 -0300 Subject: [PATCH 01/13] Add class PodOptional --- builds/win32/msvc15/common.vcxproj | 1 + builds/win32/msvc15/common.vcxproj.filters | 3 + src/common/classes/PodOptional.h | 64 ++++++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 src/common/classes/PodOptional.h diff --git a/builds/win32/msvc15/common.vcxproj b/builds/win32/msvc15/common.vcxproj index 2c8448d35db..16047820d13 100644 --- a/builds/win32/msvc15/common.vcxproj +++ b/builds/win32/msvc15/common.vcxproj @@ -153,6 +153,7 @@ + diff --git a/builds/win32/msvc15/common.vcxproj.filters b/builds/win32/msvc15/common.vcxproj.filters index 0145c958fce..fb420f6a966 100644 --- a/builds/win32/msvc15/common.vcxproj.filters +++ b/builds/win32/msvc15/common.vcxproj.filters @@ -446,6 +446,9 @@ headers + + headers + headers diff --git a/src/common/classes/PodOptional.h b/src/common/classes/PodOptional.h new file mode 100644 index 00000000000..ee5b6316f25 --- /dev/null +++ b/src/common/classes/PodOptional.h @@ -0,0 +1,64 @@ +/* + * The contents of this file are subject to the Initial + * Developer's Public License Version 1.0 (the "License"); + * you may not use this file except in compliance with the + * License. You may obtain a copy of the License at + * http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl. + * + * Software distributed under the License is distributed AS IS, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. + * See the License for the specific language governing rights + * and limitations under the License. + * + * The Original Code was created by Adriano dos Santos Fernandes + * for the Firebird Open Source RDBMS project. + * + * Copyright (c) 2025 Adriano dos Santos Fernandes + * and all contributors signed below. + * + * All Rights Reserved. + * Contributor(s): ______________________________________. + * + */ + +#ifndef CLASSES_POD_OPTIONAL_H +#define CLASSES_POD_OPTIONAL_H + +#include +#include + +namespace Firebird { + + +template +class PodOptional +{ +public: + PodOptional(std::nullopt_t = std::nullopt) noexcept + : value(), + hasValue(false) + { + } + + PodOptional(T aValue) noexcept + : value(aValue), + hasValue(true) + { + } + +public: + std::optional toOptional() const noexcept + { + static_assert(std::is_trivially_copyable_v> && std::is_standard_layout_v>); + return hasValue ? std::make_optional(value) : std::nullopt; + } + +private: + T value; + bool hasValue; +}; + + +} // namespace Firebird + +#endif // CLASSES_POD_OPTIONAL_H From e5ceaf03ad2ab1f54f77e4db6414c7aeae3a96b6 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Thu, 23 Oct 2025 07:58:44 -0300 Subject: [PATCH 02/13] Replace std::optional by PodOptional in YYSTYPE The old code was causing database creation problems in MacOS 15 clang. --- src/dsql/Parser.h | 1 + src/dsql/btyacc_fb.ske | 1 + src/dsql/parse.y | 113 +++++++++++++++++++---------------------- 3 files changed, 53 insertions(+), 62 deletions(-) diff --git a/src/dsql/Parser.h b/src/dsql/Parser.h index 765fa526a25..5ad51baf2ab 100644 --- a/src/dsql/Parser.h +++ b/src/dsql/Parser.h @@ -33,6 +33,7 @@ #include "../dsql/PackageNodes.h" #include "../dsql/StmtNodes.h" #include "../jrd/RecordSourceNodes.h" +#include "../common/classes/PodOptional.h" #include "../common/classes/TriState.h" #include "../common/classes/stack.h" diff --git a/src/dsql/btyacc_fb.ske b/src/dsql/btyacc_fb.ske index 594c40ed0c8..92d8622577b 100644 --- a/src/dsql/btyacc_fb.ske +++ b/src/dsql/btyacc_fb.ske @@ -27,6 +27,7 @@ #include "../dsql/StmtNodes.h" #include "../dsql/WinNodes.h" #include "../jrd/RecordSourceNodes.h" +#include "../common/classes/PodOptional.h" #include "../common/classes/TriState.h" #include "gen/parse.h" #include "../dsql/Parser.h" diff --git a/src/dsql/parse.y b/src/dsql/parse.y index c8f2204af17..c2b34b66216 100644 --- a/src/dsql/parse.y +++ b/src/dsql/parse.y @@ -751,10 +751,10 @@ using namespace Firebird; YYSTYPE() {} - std::optional nullableIntVal; + Firebird::PodOptional nullableIntVal; Firebird::TriState triState; - std::optional nullableSqlSecurityVal; - std::optional nullableOverrideClause; + Firebird::PodOptional nullableSqlSecurityVal; + Firebird::PodOptional nullableOverrideClause; struct { bool first; bool second; } boolPair; bool boolVal; int intVal; @@ -762,8 +762,8 @@ using namespace Firebird; SLONG int32Val; SINT64 int64Val; FB_UINT64 uint64Val; - std::optional nullableInt64Val; - std::optional nullableUint64Val; + Firebird::PodOptional nullableInt64Val; + Firebird::PodOptional nullableUint64Val; Jrd::ScaledNumber scaledNumber; UCHAR blrOp; Jrd::OrderNode::NullsPlacement nullsPlacement; @@ -1539,16 +1539,16 @@ arg_desc($parameters) : udf_data_type param_mechanism { $parameters->add(newNode($1)); - $parameters->back()->udfMechanism = $2; + $parameters->back()->udfMechanism = $2.toOptional(); } ; %type param_mechanism param_mechanism : /* nothing */ { $$ = std::nullopt; } // Beware: This means FUN_reference or FUN_blob_struct. - | BY DESCRIPTOR { $$ = FUN_descriptor; } - | BY SCALAR_ARRAY { $$ = FUN_scalar_array; } - | NULL { $$ = FUN_ref_with_null; } + | BY DESCRIPTOR { $$ = PodOptional(FUN_descriptor); } + | BY SCALAR_ARRAY { $$ = PodOptional(FUN_scalar_array); } + | NULL { $$ = PodOptional(FUN_ref_with_null); } ; %type return_value1() @@ -2084,13 +2084,13 @@ restart_option($seqNode) : RESTART with_opt { setClause($seqNode->restartSpecified, "RESTART", true); - setClause($seqNode->value, "RESTART WITH", $2); + setClause($seqNode->value, "RESTART WITH", $2.toOptional()); } %type with_opt with_opt : /* Nothign */ { $$ = std::nullopt; } - | WITH sequence_value { $$ = $2; } + | WITH sequence_value { $$ = PodOptional($2); } ; %type set_generator_clause @@ -2824,7 +2824,7 @@ psql_procedure_clause : procedure_clause_start optional_sql_security_full_alter_clause AS local_declarations_opt full_proc_block { $$ = $1; - $$->ssDefiner = $2; + $$->ssDefiner = $2.toOptional(); $$->source = makeParseStr(YYPOSNARG(4), YYPOSNARG(5)); $$->localDeclList = $4; $$->body = $5; @@ -2857,7 +2857,7 @@ partial_alter_procedure_clause optional_sql_security_partial_alter_clause { $$ = $2; - $$->ssDefiner = $3; + $$->ssDefiner = $3.toOptional(); } ; @@ -2972,7 +2972,7 @@ psql_function_clause : function_clause_start optional_sql_security_full_alter_clause AS local_declarations_opt full_proc_block { $$ = $1; - $$->ssDefiner = $2; + $$->ssDefiner = $2.toOptional(); $$->source = makeParseStr(YYPOSNARG(4), YYPOSNARG(5)); $$->localDeclList = $4; $$->body = $5; @@ -3023,7 +3023,7 @@ alter_individual_op($createAlterFunctionNode) : deterministic_clause { setClause($createAlterFunctionNode->deterministic, "DETERMINISTIC", $1); } | optional_sql_security_partial_alter_clause - { setClause($createAlterFunctionNode->ssDefiner, "SQL SECURITY", $1); } + { setClause($createAlterFunctionNode->ssDefiner, "SQL SECURITY", $1.toOptional()); } ; %type deterministic_clause @@ -3092,7 +3092,7 @@ package_clause : symbol_package_name optional_sql_security_full_alter_clause AS BEGIN package_items_opt END { CreateAlterPackageNode* node = newNode(*$1); - node->ssDefiner = $2; + node->ssDefiner = $2.toOptional(); node->source = makeParseStr(YYPOSNARG(4), YYPOSNARG(6)); node->items = $5; $$ = node; @@ -3104,7 +3104,7 @@ partial_alter_package_clause : symbol_package_name optional_sql_security_partial_alter_clause { CreateAlterPackageNode* node = newNode(*$1); - node->ssDefiner = $2; + node->ssDefiner = $2.toOptional(); $$ = node; } ; @@ -3258,7 +3258,7 @@ schema_clause_option($createAlterSchemaNode) : DEFAULT CHARACTER SET symbol_character_set_name { setClause($createAlterSchemaNode->setDefaultCharSet, "DEFAULT CHARACTER SET", *$4); } | DEFAULT optional_sql_security_clause - { setClause($createAlterSchemaNode->setDefaultSqlSecurity, "DEFAULT SQL SECURITY", *$2); } + { setClause($createAlterSchemaNode->setDefaultSqlSecurity, "DEFAULT SQL SECURITY", $2.toOptional()); } ; %type alter_schema_clause @@ -3285,7 +3285,7 @@ alter_schema_option($alterSchemaNode) : SET DEFAULT CHARACTER SET symbol_character_set_name { setClause($alterSchemaNode->setDefaultCharSet, "DEFAULT CHARACTER SET", *$5); } | SET DEFAULT optional_sql_security_clause - { setClause($alterSchemaNode->setDefaultSqlSecurity, "DEFAULT SQL SECURITY", *$3); } + { setClause($alterSchemaNode->setDefaultSqlSecurity, "DEFAULT SQL SECURITY", $3.toOptional()); } | DROP DEFAULT CHARACTER SET { setClause($alterSchemaNode->setDefaultCharSet, "DEFAULT CHARACTER SET", QualifiedName()); } | DROP DEFAULT SQL SECURITY @@ -4187,7 +4187,7 @@ trigger_clause : create_trigger_start trg_sql_security_clause AS local_declarations_opt full_proc_block { $$ = $1; - $$->ssDefiner = $2; + $$->ssDefiner = $2.toOptional(); $$->source = makeParseStr(YYPOSNARG(3), YYPOSNARG(5)); $$->localDeclList = $4; $$->body = $5; @@ -4215,14 +4215,14 @@ create_trigger_common($trigger) { $trigger->active = $1; $trigger->type = $2; - setClause($trigger->position, "POSITION", $3); + setClause($trigger->position, "POSITION", $3.toOptional()); } | FOR symbol_table_name trigger_active table_trigger_type trigger_position { $trigger->relationName = *$2; $trigger->active = $3; $trigger->type = $4; - setClause($trigger->position, "POSITION", $5); + setClause($trigger->position, "POSITION", $5.toOptional()); } ; @@ -4250,7 +4250,7 @@ trigger_type($trigger) : table_trigger_type trigger_position ON symbol_table_name { $$ = $1; - setClause($trigger->position, "POSITION", $2); + setClause($trigger->position, "POSITION", $2.toOptional()); $trigger->relationName = *$4; } | ON trigger_db_type @@ -4360,7 +4360,7 @@ trigger_type_suffix %type trigger_position trigger_position : /* nothing */ { $$ = std::nullopt; } - | POSITION nonneg_short_integer { $$ = $2; } + | POSITION nonneg_short_integer { $$ = PodOptional((int) $2); } ; // ALTER statement @@ -4766,7 +4766,7 @@ alter_identity_clause_option($identityOptions) : RESTART with_opt { setClause($identityOptions->restart, "RESTART"); - $identityOptions->startValue = $2; + $identityOptions->startValue = $2.toOptional(); } | SET INCREMENT by_noise signed_long_integer { setClause($identityOptions->increment, "SET INCREMENT BY", $4); } @@ -4926,9 +4926,9 @@ alter_trigger_clause $$->alter = true; $$->create = false; $$->active = $2; - $$->type = $3; - $$->position = $4; - $$->ssDefiner = $5; + $$->type = $3.toOptional(); + $$->position = $4.toOptional(); + $$->ssDefiner = $5.toOptional(); $$->source = makeParseStr(YYPOSNARG(6), YYPOSNARG(8)); $$->localDeclList = $7; $$->body = $8; @@ -4940,8 +4940,8 @@ alter_trigger_clause $$->alter = true; $$->create = false; $$->active = $2; - $$->type = $3; - $$->position = $4; + $$->type = $3.toOptional(); + $$->position = $4.toOptional(); $$->external = $5; if ($6) $$->source = *$6; @@ -4952,52 +4952,41 @@ alter_trigger_clause $$->alter = true; $$->create = false; $$->active = $2; - $$->type = $3; - $$->position = $4; - $$->ssDefiner = $5; + $$->type = $3.toOptional(); + $$->position = $4.toOptional(); + $$->ssDefiner = $5.toOptional(); } ; %type trigger_type_opt trigger_type_opt // we do not allow alter database triggers, hence we do not use trigger_type here - : trigger_type_prefix trigger_type_suffix - { $$ = $1 + $2 - 1; } - | - { $$ = std::nullopt; } + : trigger_type_prefix trigger_type_suffix { $$ = PodOptional($1 + $2 - 1); } + | /* nothing */ { $$ = std::nullopt; } ; %type optional_sql_security_clause optional_sql_security_clause - : SQL SECURITY DEFINER - { $$ = SS_DEFINER; } - | SQL SECURITY INVOKER - { $$ = SS_INVOKER; } + : SQL SECURITY DEFINER { $$ = PodOptional(SS_DEFINER); } + | SQL SECURITY INVOKER { $$ = PodOptional(SS_INVOKER); } ; %type optional_sql_security_full_alter_clause optional_sql_security_full_alter_clause - : optional_sql_security_clause - { $$ = $1; } - | // nothing - { $$ = std::nullopt; } + : optional_sql_security_clause { $$ = $1; } + | /* nothing */ { $$ = std::nullopt; } ; %type optional_sql_security_partial_alter_clause optional_sql_security_partial_alter_clause - : optional_sql_security_clause - { $$ = $1; } - | DROP SQL SECURITY - { $$ = SS_DROP; } + : optional_sql_security_clause { $$ = $1; } + | DROP SQL SECURITY { $$ = PodOptional(SS_DROP); } ; %type trg_sql_security_clause trg_sql_security_clause - : // nothing - { $$ = std::nullopt; } - | optional_sql_security_clause - { $$ = $1; } - | DROP SQL SECURITY - { $$ = SS_DROP; } + : /* nothing */ { $$ = std::nullopt; } + | optional_sql_security_clause { $$ = $1; } + | DROP SQL SECURITY { $$ = PodOptional(SS_DROP); } ; // DROP metadata operations @@ -7107,14 +7096,14 @@ insert returning_clause { StoreNode* node = $$ = $1; - node->overrideClause = $3; + node->overrideClause = $3.toOptional(); node->dsqlValues = $6; node->dsqlReturning = $8; } | insert_start ins_column_parens_opt(NOTRIAL(&$1->dsqlFields)) override_opt select_expr returning_clause { StoreNode* node = $$ = $1; - node->overrideClause = $3; + node->overrideClause = $3.toOptional(); node->dsqlRse = $4; node->dsqlReturning = $5; $$ = node; @@ -7140,8 +7129,8 @@ insert_start %type override_opt override_opt : /* nothing */ { $$ = std::nullopt; } - | OVERRIDING USER VALUE { $$ = OverrideClause::USER_VALUE; } - | OVERRIDING SYSTEM VALUE { $$ = OverrideClause::SYSTEM_VALUE; } + | OVERRIDING USER VALUE { $$ = PodOptional(OverrideClause::USER_VALUE); } + | OVERRIDING SYSTEM VALUE { $$ = PodOptional(OverrideClause::SYSTEM_VALUE); } ; %type value_or_default_list @@ -7226,13 +7215,13 @@ merge_insert_specification($mergeNotMatchedClause) : THEN INSERT ins_column_parens_opt(NOTRIAL(&$mergeNotMatchedClause->fields)) override_opt VALUES '(' value_or_default_list ')' { - $mergeNotMatchedClause->overrideClause = $4; + $mergeNotMatchedClause->overrideClause = $4.toOptional(); $mergeNotMatchedClause->values = $7; } | AND search_condition THEN INSERT ins_column_parens_opt(NOTRIAL(&$mergeNotMatchedClause->fields)) override_opt VALUES '(' value_or_default_list ')' { - $mergeNotMatchedClause->overrideClause = $6; + $mergeNotMatchedClause->overrideClause = $6.toOptional(); $mergeNotMatchedClause->values = $9; $mergeNotMatchedClause->condition = $2; } @@ -7342,7 +7331,7 @@ update_or_insert plan_clause order_clause_opt rows_clause_optional returning_clause { UpdateOrInsertNode* node = $$ = $6; - node->overrideClause = $8; + node->overrideClause = $8.toOptional(); node->values = $11; node->plan = $14; node->order = $15; From afb91a645655462f409a05a73527bee60e8751c0 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Thu, 23 Oct 2025 07:58:44 -0300 Subject: [PATCH 03/13] Update MacOS runners accordingly to announced deprecations --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index cb390544135..6f9b43e8926 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -360,7 +360,7 @@ jobs: build-macos: name: build-macos-${{ matrix.arch }} - runs-on: ${{ (matrix.arch == 'arm64' && 'macos-14') || 'macos-13' }} + runs-on: ${{ (matrix.arch == 'arm64' && 'macos-15') || 'macos-15-intel' }} strategy: fail-fast: false From fc252f8d93e2358e7d000bbe7090f4717aef34d6 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Thu, 23 Oct 2025 07:58:44 -0300 Subject: [PATCH 04/13] Fix ICU build. --- vcpkg-custom/triplets/fb-arm64-osx.cmake | 2 ++ vcpkg-custom/triplets/fb-x64-osx.cmake | 2 ++ 2 files changed, 4 insertions(+) diff --git a/vcpkg-custom/triplets/fb-arm64-osx.cmake b/vcpkg-custom/triplets/fb-arm64-osx.cmake index aa4d2e74845..16665e1286b 100644 --- a/vcpkg-custom/triplets/fb-arm64-osx.cmake +++ b/vcpkg-custom/triplets/fb-arm64-osx.cmake @@ -8,3 +8,5 @@ set(VCPKG_OSX_ARCHITECTURES arm64) if(PORT STREQUAL "icu") set(VCPKG_LIBRARY_LINKAGE dynamic) endif() + +set(VCPKG_LINKER_FLAGS "-Wl,-headerpad_max_install_names" CACHE STRING "" FORCE) diff --git a/vcpkg-custom/triplets/fb-x64-osx.cmake b/vcpkg-custom/triplets/fb-x64-osx.cmake index 278f1444085..0259c4912c6 100644 --- a/vcpkg-custom/triplets/fb-x64-osx.cmake +++ b/vcpkg-custom/triplets/fb-x64-osx.cmake @@ -8,3 +8,5 @@ set(VCPKG_OSX_ARCHITECTURES x86_64) if(PORT STREQUAL "icu") set(VCPKG_LIBRARY_LINKAGE dynamic) endif() + +set(VCPKG_LINKER_FLAGS "-Wl,-headerpad_max_install_names" CACHE STRING "" FORCE) From d8fb1270022b7035039307e2a234e982703113c9 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Thu, 23 Oct 2025 07:58:44 -0300 Subject: [PATCH 05/13] Remove obsolete MacOS ports --- builds/posix/prefix.darwin_i386 | 39 --------------------------- builds/posix/prefix.darwin_powerpc | 27 ------------------- builds/posix/prefix.darwin_ppc64 | 42 ------------------------------ 3 files changed, 108 deletions(-) delete mode 100644 builds/posix/prefix.darwin_i386 delete mode 100644 builds/posix/prefix.darwin_powerpc delete mode 100644 builds/posix/prefix.darwin_ppc64 diff --git a/builds/posix/prefix.darwin_i386 b/builds/posix/prefix.darwin_i386 deleted file mode 100644 index ff6069839d5..00000000000 --- a/builds/posix/prefix.darwin_i386 +++ /dev/null @@ -1,39 +0,0 @@ -# The contents of this file are subject to the Interbase Public -# License Version 1.0 (the "License"); you may not use this file -# except in compliance with the License. You may obtain a copy -# of the License at http://www.Inprise.com/IPL.html -# -# Software distributed under the License is distributed on an -# "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express -# or implied. See the License for the specific language governing -# rights and limitations under the License. -# -# The Original Code was created by Inprise Corporation -# and its predecessors. Portions created by Inprise Corporation are -# -# Copyright (C) 2000 Inprise Corporation -# All Rights Reserved. -# Contributor(s): ______________________________________. -# Start of file prefix.darwin: $(VERSION) @PLATFORM@ -# 2 Oct 2002, Nickolay Samofatov - Major Cleanup -# -# Default build from 10.7 using Clang -# Use this file to create a 32bit version of Firebird for intel -# Instructions if running MacOSX 10.7 -# 1. edit configure.in so that MAKEFILE_PREFIX=darwin_i386 -# 2. dnl the CPU_TYPE -# 3. edit extern/icu/source/config and set the right 32bit flags (-arch i386) -# 4. for CFLAGS, CXXFLAGS, LDFLAGS export '-m32 -arch i386' -# 5. export MACOSX_DEPLOYMENT_TARGET=10.7 - -MACOSX_DEPLOYMENT_TARGET=10.7 -export MACOSX_DEPLOYMENT_TARGET - -PROD_FLAGS=-O1 -DDARWIN -pipe -MMD -fPIC -fno-common -arch i386 -mmacosx-version-min=10.7 -DEV_FLAGS=-ggdb -DDARWIN -pipe -MMD -fPIC -fno-common -Wall -arch i386 -mmacosx-version-min=10.7 -Wno-non-virtual-dtor -CXXFLAGS:=$(CXXFLAGS) -fvisibility-inlines-hidden -fvisibility=hidden -fno-weak - -EXE_LINK_OPTIONS+=-m32 -LD_FLAGS+=-m32 -arch i386 - -include $(ROOT)/gen/darwin.defaults diff --git a/builds/posix/prefix.darwin_powerpc b/builds/posix/prefix.darwin_powerpc deleted file mode 100644 index c56b5feaede..00000000000 --- a/builds/posix/prefix.darwin_powerpc +++ /dev/null @@ -1,27 +0,0 @@ -# The contents of this file are subject to the Interbase Public -# License Version 1.0 (the "License"); you may not use this file -# except in compliance with the License. You may obtain a copy -# of the License at http://www.Inprise.com/IPL.html -# -# Software distributed under the License is distributed on an -# "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express -# or implied. See the License for the specific language governing -# rights and limitations under the License. -# -# The Original Code was created by Inprise Corporation -# and its predecessors. Portions created by Inprise Corporation are -# -# Copyright (C) 2000 Inprise Corporation -# All Rights Reserved. -# Contributor(s): ______________________________________. -# Start of file prefix.darwin: $(VERSION) @PLATFORM@ -# 2 Oct 2002, Nickolay Samofatov - Major Cleanup - -MACOSX_DEPLOYMENT_TARGET=10.2 -export MACOSX_DEPLOYMENT_TARGET - -PROD_FLAGS=-DDARWIN -pipe -p -MMD -fPIC -fno-common -arch ppc -mmacosx-version-min=10.2 -DEV_FLAGS=-ggdb -DDARWIN -pipe -p -MMD -fPIC -fno-common -Wall -arch ppc -mmacosx-version-min=10.2 -Wno-non-virtual-dtor -CXXFLAGS:=$(CXXFLAGS) -fvisibility-inlines-hidden -fvisibility=hidden -fno-weak - -include $(ROOT)/gen/darwin.defaults diff --git a/builds/posix/prefix.darwin_ppc64 b/builds/posix/prefix.darwin_ppc64 deleted file mode 100644 index a33ed454899..00000000000 --- a/builds/posix/prefix.darwin_ppc64 +++ /dev/null @@ -1,42 +0,0 @@ -# The contents of this file are subject to the Interbase Public -# License Version 1.0 (the "License"); you may not use this file -# except in compliance with the License. You may obtain a copy -# of the License at http://www.Inprise.com/IPL.html -# -# Software distributed under the License is distributed on an -# "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express -# or implied. See the License for the specific language governing -# rights and limitations under the License. -# -# The Original Code was created by Inprise Corporation -# and its predecessors. Portions created by Inprise Corporation are -# -# Copyright (C) 2000 Inprise Corporation -# All Rights Reserved. -# Contributor(s): ______________________________________. -# Start of file prefix.darwin: $(VERSION) @PLATFORM@ -# 2 Oct 2002, Nickolay Samofatov - Major Cleanup - -# To use this file to build 64bit version of Firebird for MacOS 10.5 (Leopard) -# Can only be built on MacOSX 10.5 (Leopard) due to lack of 64bit support in -# Carbon in previous versions of MacOSX -# 1. edit configure.in so that MAKEFILE_PREFIX=darwin_ppc64 -# 2. uncomment the CPU_TYPE -# 3. edit extern/icu/source/config/mh-darwin and set the right 64bit flags (-arch ppc64) -# for CFLAGS, CXXFLAGS & LD_FLAGS -# 4. export CFLAGS='-arch _ppc64' -# 5. export CXXFLAGS='-arch ppc_64' -# 6. export LDFLAGS='-arch ppc_64' -# 7. export MACOSX_DEPLOYMENT_TARGET=10.5 - -MACOSX_DEPLOYMENT_TARGET=10.5 -export MACOSX_DEPLOYMENT_TARGET - -PROD_FLAGS=-O3 -DDARWIN -pipe -p -MMD -fPIC -fno-common -mmacosx-version-min=10.5 -DEV_FLAGS=-ggdb -DDARWIN -pipe -p -MMD -fPIC -fno-common -Wall -mmacosx-version-min=10.5 -Wno-non-virtual-dtor -CXXFLAGS:=$(CXXFLAGS) -fvisibility-inlines-hidden -fvisibility=hidden - -EXE_LINK_OPTIONS+=-arch ppc64 -LD_FLAGS+=-arch ppc64 - -include $(ROOT)/gen/darwin.defaults From 07634ef6bce58356c2efbc09ed2c13f16045de17 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Thu, 23 Oct 2025 07:58:44 -0300 Subject: [PATCH 06/13] Do not forward (and forward incorrectly) Firebird build flags to tools (cloop) --- builds/posix/Makefile.in | 2 +- builds/posix/make.rules | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/builds/posix/Makefile.in b/builds/posix/Makefile.in index 6764214e7f3..197f586c991 100644 --- a/builds/posix/Makefile.in +++ b/builds/posix/Makefile.in @@ -197,7 +197,7 @@ ifeq ($(CLIENT_ONLY_FLG),N) CC="$(CC)" CFLAGS="$(CFLAGS)" AR="$(AR)" $(MAKE) -C $(ROOT)/extern/btyacc endif - CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)" LD_FLAGS="$(WLDFLAGS)" $(MAKE) -C $(ROOT)/extern/cloop TARGET=release WITH_FPC=0 BUILD_DIR=$(TMP_ROOT)/cloop OUT_DIR=$(GEN_ROOT)/$(TARGET)/cloop core + CXX="$(CXX)" LD_FLAGS="$(PLATFORM_LDFLAGS)" $(MAKE) -C $(ROOT)/extern/cloop TARGET=release WITH_FPC=0 BUILD_DIR=$(TMP_ROOT)/cloop OUT_DIR=$(GEN_ROOT)/$(TARGET)/cloop core CC="$(CC)" CFLAGS="$(CFLAGS)" AR="$(AR)" $(MAKE) -C $(ROOT)/extern/decNumber ln -sf $(ROOT)/extern/decNumber/libdecFloat.a $(STATIC_LIB) diff --git a/builds/posix/make.rules b/builds/posix/make.rules index 3bbd2580fea..cc12c500251 100644 --- a/builds/posix/make.rules +++ b/builds/posix/make.rules @@ -71,7 +71,8 @@ WCXXFLAGS = $(WFLAGS) $(PLUSPLUS_FLAGS) $(PLATFORM_PLUSPLUS_FLAGS) $(CXXFLAGS) $ WLDFLAGS = $(LDFLAGS) $(AC_LDFLAGS) ifneq ($(PLATFORM),DARWIN) -WLDFLAGS += -static-libstdc++ +PLATFORM_LDFLAGS="-static-libstdc++" +WLDFLAGS += $(PLATFORM_LDFLAGS) endif # Here we have definitions for using the preprocessor. From e5baff3ee4d39c0e6845692e2b036ce71c20a7f4 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Thu, 23 Oct 2025 07:58:44 -0300 Subject: [PATCH 07/13] MacOS build improvements --- builds/posix/darwin.defaults | 2 +- builds/posix/prefix.darwin_aarch64 | 12 +++++++----- builds/posix/prefix.darwin_x86_64 | 12 +++++++----- configure.ac | 2 +- extern/cloop/Makefile | 4 ---- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/builds/posix/darwin.defaults b/builds/posix/darwin.defaults index 8012af3ea7e..d8350092c29 100644 --- a/builds/posix/darwin.defaults +++ b/builds/posix/darwin.defaults @@ -21,7 +21,7 @@ #FirebirdInstallPrefix= LIB_BUNDLE_OPTIONS=$(LD_FLAGS) -bundle LIB_LINK_OPTIONS=$(LD_FLAGS) -dynamiclib -LIB_LINK_SONAME:=-current_version @FIREBIRD_VERSION@ -compatibility_version @FIREBIRD_VERSION@ -seg1addr 0x30000000 +LIB_LINK_SONAME:=-current_version @FIREBIRD_VERSION@ -compatibility_version @FIREBIRD_VERSION@ LIB_LINK_MAPFILE=-Wl,-exported_symbols_list,$(1) ADD_LIBS:=-lobjc -framework Foundation -framework Security diff --git a/builds/posix/prefix.darwin_aarch64 b/builds/posix/prefix.darwin_aarch64 index 7f2da73ccb7..c179da7fc34 100644 --- a/builds/posix/prefix.darwin_aarch64 +++ b/builds/posix/prefix.darwin_aarch64 @@ -33,17 +33,19 @@ #DYLD_PRINT_LIBRARIES=1 #export DYLD_PRINT_LIBRARIES -MACOSX_DEPLOYMENT_TARGET=11.0 +MACOSX_DEPLOYMENT_TARGET=12.7 export MACOSX_DEPLOYMENT_TARGET -PROD_FLAGS=-DDARWIN -DARM64 -pipe -O2 -MMD -fPIC -fno-common -mmacosx-version-min=11.0 -DEV_FLAGS=-ggdb -DDARWIN -DARM64 -pipe -MMD -fPIC -fno-omit-frame-pointer -fno-common -Wall -fno-optimize-sibling-calls -mmacosx-version-min=11.0 -Wno-non-virtual-dtor +PLATFORM_PLUSPLUS_FLAGS=-Wno-invalid-offsetof + +PROD_FLAGS=-DDARWIN -DARM64 -pipe -O2 -MMD -fPIC -fno-common -mmacosx-version-min=12.7 +DEV_FLAGS=-ggdb -DDARWIN -DARM64 -pipe -MMD -fPIC -fno-omit-frame-pointer -fno-common -Wall -fno-optimize-sibling-calls -mmacosx-version-min=12.7 -Wno-non-virtual-dtor CXXFLAGS:=$(CXXFLAGS) -fvisibility-inlines-hidden -fvisibility=hidden UNDEF_PLATFORM= -LINK_LIBS+=-liconv +#LINK_LIBS+=-liconv #MATHLIB=$(ROOT)/extern/libtommath/.libs/libtommath.a -SO_LINK_LIBS+=-liconv +#SO_LINK_LIBS+=-liconv include $(ROOT)/gen/darwin.defaults diff --git a/builds/posix/prefix.darwin_x86_64 b/builds/posix/prefix.darwin_x86_64 index 6280c8607fb..71790506b2c 100644 --- a/builds/posix/prefix.darwin_x86_64 +++ b/builds/posix/prefix.darwin_x86_64 @@ -28,15 +28,17 @@ export DYLD_LIBRARY_PATH DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib export DYLD_FALLBACK_LIBRARY_PATH -MACOSX_DEPLOYMENT_TARGET=10.9 +MACOSX_DEPLOYMENT_TARGET=12.7 export MACOSX_DEPLOYMENT_TARGET -PROD_FLAGS=-O1 -DDARWIN -pipe -MMD -fPIC -fno-common -mmacosx-version-min=10.7 -DEV_FLAGS=-ggdb -DDARWIN -pipe -MMD -fPIC -fno-omit-frame-pointer -fno-common -Wall -fno-optimize-sibling-calls -mmacosx-version-min=10.7 -Wno-non-virtual-dtor +PLATFORM_PLUSPLUS_FLAGS=-Wno-invalid-offsetof + +PROD_FLAGS=-O1 -DDARWIN -pipe -MMD -fPIC -fno-common -mmacosx-version-min=12.7 +DEV_FLAGS=-ggdb -DDARWIN -pipe -MMD -fPIC -fno-omit-frame-pointer -fno-common -Wall -fno-optimize-sibling-calls -mmacosx-version-min=12.7 -Wno-non-virtual-dtor CXXFLAGS:=$(CXXFLAGS) -fvisibility-inlines-hidden -fvisibility=hidden -msse4 -LD_FLAGS+=-liconv -FIREBIRD_LIBRARY_LINK+=-liconv +#LD_FLAGS+=-liconv +#FIREBIRD_LIBRARY_LINK+=-liconv UNDEF_PLATFORM= include $(ROOT)/gen/darwin.defaults diff --git a/configure.ac b/configure.ac index 068b1ce566f..7c250b39456 100644 --- a/configure.ac +++ b/configure.ac @@ -719,7 +719,7 @@ case "$build" in *-*-darwin*) CFLAGS="$CFLAGS -I${VCPKG_INSTALLED}/include" CXXFLAGS="$CXXFLAGS -nostdinc++ -isystem ${VCPKG_INSTALLED}/include/c++/v1 -I${VCPKG_INSTALLED}/include" - LDFLAGS="$LDFLAGS -nostdlib++ -stdlib=libc++ -L${VCPKG_INSTALLED}/lib -lc++" + LDFLAGS="$LDFLAGS -nostdlib++ -L${VCPKG_INSTALLED}/lib -lc++" ;; esac diff --git a/extern/cloop/Makefile b/extern/cloop/Makefile index 319218a85ee..4388ee37d36 100644 --- a/extern/cloop/Makefile +++ b/extern/cloop/Makefile @@ -41,10 +41,6 @@ ifeq ($(TARGET),release) CXX_FLAGS += -O3 endif -ifeq ($(shell uname),Darwin) -CXX_FLAGS += -stdlib=libc++ -endif - ifeq ($(TARGET),debug) FPC_FLAGS += -g LD_FLAGS += -ggdb From 73d65f627c3b7f4397d62db5ce60a39e75678509 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Thu, 23 Oct 2025 07:58:44 -0300 Subject: [PATCH 08/13] Avoid build vcpkg debug libraries --- vcpkg-custom/triplets/fb-arm64-osx.cmake | 2 ++ vcpkg-custom/triplets/fb-x64-osx.cmake | 2 ++ 2 files changed, 4 insertions(+) diff --git a/vcpkg-custom/triplets/fb-arm64-osx.cmake b/vcpkg-custom/triplets/fb-arm64-osx.cmake index 16665e1286b..fd8c1ca2105 100644 --- a/vcpkg-custom/triplets/fb-arm64-osx.cmake +++ b/vcpkg-custom/triplets/fb-arm64-osx.cmake @@ -1,3 +1,5 @@ +set(VCPKG_BUILD_TYPE release) + set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) diff --git a/vcpkg-custom/triplets/fb-x64-osx.cmake b/vcpkg-custom/triplets/fb-x64-osx.cmake index 0259c4912c6..b52a30ffc6c 100644 --- a/vcpkg-custom/triplets/fb-x64-osx.cmake +++ b/vcpkg-custom/triplets/fb-x64-osx.cmake @@ -1,3 +1,5 @@ +set(VCPKG_BUILD_TYPE release) + set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) From b58ce9306756580de3b557913db63fd4c5a86999 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Thu, 23 Oct 2025 07:58:44 -0300 Subject: [PATCH 09/13] Remove obsolete MacOS ports --- .../arch-specific/darwin/embed.Info.plist | 11 --- .../install/arch-specific/darwin/embed.darwin | 94 ------------------- 2 files changed, 105 deletions(-) delete mode 100644 builds/install/arch-specific/darwin/embed.Info.plist delete mode 100644 builds/install/arch-specific/darwin/embed.darwin diff --git a/builds/install/arch-specific/darwin/embed.Info.plist b/builds/install/arch-specific/darwin/embed.Info.plist deleted file mode 100644 index 83f512e3631..00000000000 --- a/builds/install/arch-specific/darwin/embed.Info.plist +++ /dev/null @@ -1,11 +0,0 @@ - - - - - LSEnvironment - - FIREBIRD - . - - - diff --git a/builds/install/arch-specific/darwin/embed.darwin b/builds/install/arch-specific/darwin/embed.darwin deleted file mode 100644 index 2c8f05cad92..00000000000 --- a/builds/install/arch-specific/darwin/embed.darwin +++ /dev/null @@ -1,94 +0,0 @@ -# Makefile script to generate an embedded Firebird Framework from a sucessful Firebird build -# To be run from the gen directory of a Firebird Release build -# Your application needs to be placed in the Resources/app directory. - - FBE=../gen/Release/frameworks/FirebirdEmbedded.framework - BINLOC=../gen/Release/frameworks/FirebirdEmbedded.framework/Versions/A/Resources/bin - LIBLOC=../gen/Release/frameworks/FirebirdEmbedded.framework/Versions/A - INTLOC=../gen/Release/frameworks/FirebirdEmbedded.framework/Versions/A/Resources/intl - PLULOC=../gen/Release/frameworks/FirebirdEmbedded.framework/Versions/A/Resources/plugins - UTILOC=../gen/Release/frameworks/FirebirdEmbedded.framework/Versions/A/Libraries - OLDPATH=/Library/Frameworks/Firebird.framework/Versions/A/Libraries - -all: - - -$(RM) -rf $(FBE) - mkdir -p $(FBE)/Versions/A/Resources - mkdir -p $(FBE)/Versions/A/Resources/intl - mkdir -p $(FBE)/Versions/A/Resources/plugins - mkdir -p $(FBE)/Versions/A/Resources/bin - mkdir -p $(FBE)/Versions/A/Resources/app - mkdir -p $(FBE)/Versions/A/Headers - mkdir -p $(FBE)/Versions/A/Libraries - ln -s Versions/Current/Headers $(FBE)/Headers - ln -s Versions/Current/Resources $(FBE)/Resources - ln -s Versions/Current/Libraries $(FBE)/Libraries - ln -s A $(FBE)/Versions/Current - - cp ../gen/Release/firebird/firebird.conf $(FBE)/Versions/A/Resources/firebird.conf - cp ../gen/Release/firebird/plugins.conf $(FBE)/Versions/A/Resources/plugins.conf - cp ../gen/Release/firebird/firebird.msg $(FBE)/Versions/A/Resources/firebird.msg - cp ../gen/Release/firebird/lib/libfbclient.dylib $(FBE)/Versions/A/libfbclient.dylib - cp ../gen/Release/firebird/plugins/libEngine12.dylib $(FBE)/Versions/A/Resources/plugins/libEngine12.dylib - cp ../gen/Release/firebird/lib/libicudata.dylib $(FBE)/Versions/A/libicudata.dylib - cp ../gen/Release/firebird/lib/libicui18n.dylib $(FBE)/Versions/A/libicui18n.dylib - cp ../gen/Release/firebird/lib/libicuuc.dylib $(FBE)/Versions/A/libicuuc.dylib - cp ../gen/Release/firebird/bin/gbak $(FBE)/Versions/A/Resources/bin/gbak - cp ../gen/Release//firebird/bin/isql $(FBE)/Versions/A/Resources/bin/isql - cp ../gen/Release/firebird/intl/fbintl.conf $(FBE)/Versions/A/Resources/intl/fbintl.conf - cp ../gen/Release/firebird/intl/libfbintl.dylib $(FBE)/Versions/A/Resources/intl/libfbintl.dylib - cp ../gen/Release/firebird/lib/libib_util.dylib $(FBE)/Versions/A/Libraries/libib_util.dylib - - - install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Firebird \ - @loader_path/../../libfbclient.dylib $(BINLOC)/isql - install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Firebird \ - @loader_path/../../libfbclient.dylib $(PLULOC)/libEngine12.dylib - install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicuuc.dylib \ - @loader_path/../../libicuuc.dylib $(BINLOC)/isql - install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicudata.dylib \ - @loader_path/../../libicudata.dylib $(BINLOC)/isql - install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicui18n.dylib \ - @loader_path/../../libicui18n.dylib $(BINLOC)/isql - - install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Firebird \ - @loader_path/../../libfbclient.dylib $(BINLOC)/gbak - install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicuuc.dylib \ - @loader_path/../../libicuuc.dylib $(BINLOC)/gbak - install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicudata.dylib \ - @loader_path/../../libicudata.dylib $(BINLOC)/gbak - install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicui18n.dylib \ - @loader_path/../../libicui18n.dylib $(BINLOC)/gbak - - install_name_tool -change $(OLDPATH)/libicuuc.dylib @loader_path/libicuuc.dylib \ - $(LIBLOC)/libfbclient.dylib - install_name_tool -change $(OLDPATH)/libicudata.dylib @loader_path/libicudata.dylib \ - $(LIBLOC)/libfbclient.dylib - install_name_tool -change $(OLDPATH)/libicui18n.dylib @loader_path/libicui18n.dylib \ - $(LIBLOC)/libfbclient.dylib - install_name_tool -change $(OLDPATH)/libicudata.dylib @loader_path/libicudata.dylib \ - $(LIBLOC)/libicuuc.dylib - install_name_tool -change $(OLDPATH)/libicuuc.dylib @loader_path/libicuuc.dylib \ - $(LIBLOC)/libicui18n.dylib - install_name_tool -change $(OLDPATH)/libicudata.dylib @loader_path/libicudata.dylib \ - $(LIBLOC)/libicui18n.dylib - - install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Firebird \ - @loader_path/../../libfbclient.dylib $(INTLOC)/libfbintl.dylib - - install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicuuc.dylib \ - @loader_path/../libicuuc.dylib $(INTLOC)/libfbintl.dylib - install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicudata.dylib \ - @loader_path/../libicudata.dylib $(INTLOC)/libfbintl.dylib - install_name_tool -change /Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicui18n.dylib \ - @loader_path/../libicui18n.dylib $(INTLOC)/libfbintl.dylib - - install_name_tool -id @rpath/libfbclient.dylib $(LIBLOC)/libfbclient.dylib - install_name_tool -id @rpath/libicudata.dylib $(LIBLOC)/libicudata.dylib - install_name_tool -id @rpath/libicui18n.dylib $(LIBLOC)/libicui18n.dylib - install_name_tool -id @rpath/libicudata.dylib $(LIBLOC)/libicudata.dylib - install_name_tool -id @rpath/libicuuc.dylib $(LIBLOC)/libicuuc.dylib - install_name_tool -id @rpath/libicudata.dylib $(LIBLOC)/libicudata.dylib - install_name_tool -id @rpath/libib_util.dylib $(UTILOC)/libib_util.dylib - install_name_tool -id @rpath/libfbintl.dylib $(INTLOC)/libfbintl.dylib - install_name_tool -id @rpath/libEngine12.dylib $(PLULOC)/libEngine12.dylib From 8ef8d387be2b944c0c421e0713c24ee22c37f891 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Thu, 23 Oct 2025 07:58:44 -0300 Subject: [PATCH 10/13] Fix incorrect flags forwarding causing warnings. From e7fc9b6a3be0df8dde4a46654b1cfdd010dc66c4 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Thu, 23 Oct 2025 07:58:44 -0300 Subject: [PATCH 11/13] Simplify shared library link commands From 0812d13961189204fc151d28898269a0fbffae14 Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Thu, 23 Oct 2025 07:58:44 -0300 Subject: [PATCH 12/13] Fix warnings about usage of linker flags in compile commands --- extern/libtomcrypt/makefile.shared | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extern/libtomcrypt/makefile.shared b/extern/libtomcrypt/makefile.shared index b4e7c430623..c0f17a47166 100644 --- a/extern/libtomcrypt/makefile.shared +++ b/extern/libtomcrypt/makefile.shared @@ -43,10 +43,10 @@ include makefile_include.mk #ciphers come in two flavours... enc+dec and enc src/ciphers/aes/aes_enc.o: src/ciphers/aes/aes.c src/ciphers/aes/aes_tab.c - $(LTCOMPILE) $(LTC_CFLAGS) $(CPPFLAGS) $(LTC_LDFLAGS) -DENCRYPT_ONLY -c src/ciphers/aes/aes.c -o src/ciphers/aes/aes_enc.o + $(LTCOMPILE) $(LTC_CFLAGS) $(CPPFLAGS) -DENCRYPT_ONLY -c src/ciphers/aes/aes.c -o src/ciphers/aes/aes_enc.o .c.o: - $(LTCOMPILE) $(LTC_CFLAGS) $(CPPFLAGS) $(LTC_LDFLAGS) -o $@ -c $< + $(LTCOMPILE) $(LTC_CFLAGS) $(CPPFLAGS) -o $@ -c $< LOBJECTS = $(OBJECTS:.o=.lo) From 7018c3f26e82be307eaec0f25761fafee7b5d2bb Mon Sep 17 00:00:00 2001 From: Adriano dos Santos Fernandes Date: Thu, 23 Oct 2025 07:58:44 -0300 Subject: [PATCH 13/13] Simplify shared library link commands --- builds/posix/make.defaults | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults index 38592dcc96e..82cc51ae5e6 100755 --- a/builds/posix/make.defaults +++ b/builds/posix/make.defaults @@ -360,41 +360,41 @@ LIB_LINK_MAPFILE= -Wl,--version-script,$(1) FIREBIRD_LIBRARY_LINK= -L$(LIB) -L$(STATIC_LIB) -lfbclient $(MATHLIB) $(CRYPTLIB) EXE_LINK_OPTIONS= $(LDFLAGS) $(THR_FLAGS) $(UNDEF_FLAGS) $(LIB_PATH_OPTS) $(call LINK_DARWIN_RPATH,..) $(LINK_EMPTY_SYMBOLS) -LIB_LINK_OPTIONS= $(LDFLAGS) $(THR_FLAGS) -shared +LIB_LINK_OPTIONS= $(LDFLAGS) $(THR_FLAGS) -shared $(call LINK_DARWIN_RPATH,..) FB_DAEMON = $(BIN)/firebird$(EXEC_EXT) # Per-library link rules LINK_UDF = $(LIB_LINK) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,$(1).$(SHRLIB_EXT)) $(UNDEF_FLAGS)\ - $(call LIB_LINK_RPATH,lib) $(call LINK_DARWIN_RPATH,..) + $(call LIB_LINK_RPATH,lib) LINK_UDF_LIBS = $(THR_LIBS) -L$(LIB) -L$(STATIC_LIB) -lib_util $(SO_LINK_LIBS) LINK_IB_UTIL = $(LIB_LINK) $(LINK_IBUTIL_SYMBOLS) $(LIB_LINK_OPTIONS) $(UNDEF_FLAGS)\ - $(call LIB_LINK_SONAME,$(IbUtilLibraryName)) $(call LIB_LINK_RPATH,lib) $(call LINK_DARWIN_RPATH,..) + $(call LIB_LINK_SONAME,$(IbUtilLibraryName)) $(call LIB_LINK_RPATH,lib) LINK_IB_UTIL_LIBS = $(THR_LIBS) LINK_INTL = $(LIB_LINK) $(LINK_FBINTL_SYMBOLS) $(LIB_LINK_OPTIONS) $(UNDEF_FLAGS)\ - $(call LIB_LINK_SONAME,libfbintl.$(SHRLIB_EXT).1) $(call LIB_LINK_RPATH,lib) $(call LINK_DARWIN_RPATH,..) + $(call LIB_LINK_SONAME,libfbintl.$(SHRLIB_EXT).1) $(call LIB_LINK_RPATH,lib) LINK_INTL_LIBS = -L$(LIB) -L$(STATIC_LIB) $(SO_LINK_LIBS) $(FIREBIRD_LIBRARY_LINK) LINK_TRACE = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(UNDEF_FLAGS)\ - $(call LIB_LINK_SONAME,$(LIB_PREFIX)fbtrace.$(SHRLIB_EXT).0) $(call LIB_LINK_RPATH,lib) $(call LINK_DARWIN_RPATH,..) + $(call LIB_LINK_SONAME,$(LIB_PREFIX)fbtrace.$(SHRLIB_EXT).0) $(call LIB_LINK_RPATH,lib) LINK_TRACE_LIBS = -L$(LIB) -L$(STATIC_LIB) $(SO_LINK_LIBS) LINK_FIREBIRD = $(LIB_LINK) $(LINK_FIREBIRD_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_FIREBIRD_OPTIONS) $(UNDEF_FLAGS)\ - $(call LIB_LINK_SONAME,$(LibrarySoName)) $(call LIB_LINK_RPATH,lib) $(call LINK_DARWIN_RPATH,..) + $(call LIB_LINK_SONAME,$(LibrarySoName)) $(call LIB_LINK_RPATH,lib) LINK_FIREBIRD_LIBS = -L$(LIB) -L$(STATIC_LIB) $(LIB_GUI) $(SO_LINK_LIBS) $(MATHLIB) LINK_ENGINE = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_FIREBIRD_OPTIONS) $(UNDEF_FLAGS)\ - $(call LIB_LINK_SONAME,$(EngineSoName)) $(call LIB_LINK_RPATH,lib) $(call LINK_DARWIN_RPATH,..) + $(call LIB_LINK_SONAME,$(EngineSoName)) $(call LIB_LINK_RPATH,lib) LINK_ENGINE_LIBS = $(LINK_FIREBIRD_LIBS) $(RE2LIB) $(LIBCDSLIB) $(FIREBIRD_LIBRARY_LINK) -LINK_UDRENG = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(call LIB_LINK_RPATH,lib) $(UNDEF_FLAGS)\ - $(call LINK_DARWIN_RPATH,..) +LINK_UDRENG = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(call LIB_LINK_RPATH,lib) $(UNDEF_FLAGS) + LINK_UDRENG_LIBS = -L$(LIB) -L$(STATIC_LIB) $(SO_LINK_LIBS) -LINK_PLUGIN = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(call LIB_LINK_RPATH,lib) $(UNDEF_FLAGS)\ - $(call LINK_DARWIN_RPATH,..) +LINK_PLUGIN = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(call LIB_LINK_RPATH,lib) $(UNDEF_FLAGS) + LINK_PLUG_LIBS = -L$(LIB) -L$(STATIC_LIB) $(SO_LINK_LIBS) # Pay attention - we place common library into obj, not lib dir