Skip to content
Snippets Groups Projects
Select Git revision
0 results

LICENSE

  • Narayanan Iyer's avatar
    8ed89575
    [#1000] [V71000] Resolve conflicts during merge of GT.M V7.1-000 into YottaDB master · 8ed89575
    Narayanan Iyer authored
    Background
    ----------
    * In general, each conflict section is identified by a sequence of `<<<<<<<`, `=======` and `>>>>>>>`
      markers.
    
      The block of code between the `<<<<<<<` and `=======` markers is code that was changed by YottaDB.
    
      The block of code between the `=======` and `>>>>>>>` markers is code that was changed by GT.M.
    
    * There were a few files where the FIS copyright was the only source of conflict. In that case, the
      FIS copyright change was picked and incorporated in the YottaDB version of the file. Those are not
      listed below.
    
    Changes
    -------
    * CMakeLists.txt : Discarded the GT.M changes to the `version` in this file as has been the procedure
      for prior GT.M release merges.
    
    * LICENSE : Discarded the GT.M changes to this file as has been the procedure for prior GT.M release merges.
    
    * sr_linux/release_name.h : Incorporated just the `GTM_VERSION` and `GTM_ZVERSION` macro change
      from the GT.M side. Discarded the rest of the GT.M changes.
    
    * sr_port/bml_busy.c : The GT.M change was to enhance an assert to also consider MUPIP UPGRADE as an
      exception. This change was incorporated into the YottaDB side.
    
    * sr_port/bool_expr.c: The GT.M change was to introduce 2 `ex_tail()` calls, replace an `ex_tail()` call
      with an `ex_arithlit()` call, modify an `else if` check to an `if` check and move the `UNARY_TAIL()` call.
      All these changes were incorporated into the YottaDB side.
    
    * The below compiler related files have conflicts between YottaDB master and GT.M V7.1-000.
    
      ```
      sr_port/bool_expr.c:66:<<<<<<< HEAD
      sr_port/bx_boollit.c:177:<<<<<<< HEAD
      sr_port/bx_boollit.c:254:<<<<<<< HEAD
      sr_port/bx_boollit.c:38:<<<<<<< HEAD
      sr_port/bx_boollit.c:65:<<<<<<< HEAD
      sr_port/bx_boolop.c:110:<<<<<<< HEAD
      sr_port/bx_boolop.c:32:<<<<<<< HEAD
      sr_port/bx_boolop.c:86:<<<<<<< HEAD
      sr_port/bx_relop.c:25:<<<<<<< HEAD
      sr_port/bx_tail.c:118:<<<<<<< HEAD
      sr_port/bx_tail.c:46:<<<<<<< HEAD
      sr_port/bx_tail.c:86:<<<<<<< HEAD
      sr_port/compiler.h:189:<<<<<<< HEAD
      sr_port/compiler.h:865:<<<<<<< HEAD
      sr_port/compiler.h:899:<<<<<<< HEAD
      sr_port/eval_expr.c:63:<<<<<<< HEAD
      sr_port/ex_tail.c:122:<<<<<<< HEAD
      sr_port/ex_tail.c:34:<<<<<<< HEAD
      sr_port/ex_tail.c:3:<<<<<<< HEAD
      sr_port/ex_tail.c:75:<<<<<<< HEAD
      sr_port/ex_tail.c:90:<<<<<<< HEAD
      sr_port/expr.c:37:<<<<<<< HEAD
      sr_port/fullbool.h:33:<<<<<<< HEAD
      sr_port/gvn.c:106:<<<<<<< HEAD
      sr_port/gvn.c:3:<<<<<<< HEAD
      sr_port/gvn.c:83:<<<<<<< HEAD
      sr_port/indirection.c:56:<<<<<<< HEAD
      sr_port/lkglvn.c:3:<<<<<<< HEAD
      sr_port/lkglvn.c:74:<<<<<<< HEAD
      sr_port/lkglvn.c:92:<<<<<<< HEAD
      sr_port/name_glvn.c:3:<<<<<<< HEAD
      sr_port/name_glvn.c:66:<<<<<<< HEAD
      sr_port/name_glvn.c:84:<<<<<<< HEAD
      sr_port/opcode_def.h:350:<<<<<<< HEAD
      sr_port/unary_tail.c:173:<<<<<<< HEAD
      sr_port/unary_tail.c:188:<<<<<<< HEAD
      ```
    
      One of the main changes related to the above threads is a change in the interface of `ex_tail()` to now
      pass 2 additional parameters in the GT.M side.
    
      As also mentioned at YDBTest#652 (comment 2289748595), I suspect this
      change was a result of the `gtm_boolean=3` enhancement to provide the option of eliminating all short
      circuiting.
    
      ex_tail() in the YottaDB side was already changed as part of `$ZYSQLNULL` changes to pass an additional
      parameter `depth` which is the depth of the boolean expression.
    
      The ex_tail() interface change in GT.M V7.1-000 caused a big conflict between the GT.M and YottaDB
      compiler code in lots of C files.
    
      After a lot of thought, I decided to skip picking the GT.M V7.1-000 changes to the above files.
      Also see the below discussion threads for more details.
      - YDBTest#648 (comment 2289719376)
      - YDBTest#649 (comment 2289743093)
      - YDBTest#652 (comment 2289748595)
    
      So what I did for each of the above files was to pick the `master` branch version of the file and
      restore that in this commit effectively reverting any GT.M V7.1-000 changes that were incorporated
      (as a conflict) by git in the prior 2 commits (particularly HEAD~2).
    
      While restoring `sr_port/compiler.h`, I noticed that the GT.M V7.1-000 changes had added the
      following function prototypes to this file
      - bx_sboolop()
      - bx_startbool()
      - ex_arithlit()
    
      Therefore, deleted the following new files as well as part of this commit
      - sr_port/bx_sboolop.c
      - sr_port/bx_startbool.c
      - sr_port/ex_arithlit.c
    
      And I noticed the following pre-existing files changed in GT.M V7.1-000 to accommodate the new
      `Extended Boolean evaluation without short circuiting` feature. So reverted the GT.M changes to
      these files as YottaDB was not going to support this feature (I don't think it is something
      users would want and is a lot of effort for us to merge due to the conflicts in the compiler code).
      - sr_port/gtm_env_init.c
      - sr_port/op_fnview.c
    
    * There is only one compiler change in GT.M V7.1-000 that I could understand from the GT.M release note.
      See the following thread for more details.
      - YDBTest#645 (comment 2285637632)
    
      I implemented this change in !1611. And that involved the following 2 files.
      - sr_port/ex_tail.c
      - sr_port/unary_tail.c
    
      I closed that MR and incorporated those changes to the above 2 files into this commit.
    
    * sr_port/cert_blk.c: There was 1 conflict. It was due to the GT.M side adding a `DEBUG_BLKS_TO_UPGRD_FORK_N_CORE`
      definition under a #ifdef/#else/#endif block. This was incorporated into the YottaDB side and the GT.M side of
      the conflict was discarded.
    
    * sr_port/db_auto_upgrade.c: There was 1 conflict. This was due to a prior commit 663a41a5 already
      incorporating the GT.M V7.1-000 change to this file ahead of time but modifying the comment differently.
      Since the actual assert change in the GT.M side was already incorporated correctly, I just discarded the
      GT.M side of the conflict and kept the YottaDB side of the comment.
    
      While at this, I noticed that the assert had a `==` originally but was changed to a `>=` in commit
      2577122b but that was changed back to `==` in 663a41a5 without an explanation in the commit message
      as to whether that was intentional or not. Since there is a big block of comment before the assert
      that describes the need for `>=`, I restored the `>=` in the assert (even though there have not been
      any test failures so far that demonstrate the need for the `>=`).
    
    * sr_port/dse_dmp.c: There was 1 conflict. A FIS copyright change. The GT.M side of the conflict was picked up.
    
    * sr_port/dse_f_blk.c: There was 1 conflict. Due to a SETUP_THREADGBL_ACCESS on the YottaDB side conflicting
      with a new DSE_DB_IS_TOO_OLD macro invocation on the GT.M side. The GT.M side of the conflict was picked up
      and added to the YottaDB side of the conflict.
    
    * sr_port/eintr_wrappers.h: There was 1 conflict. The GT.M side had removed the `SELECT` macro definition
      whereas the YottaDB side had some minor changes to it from a while back (due to EINTR handling). The
      macro was removed from the YottaDB side.
    
    * sr_port/flt_mod.c: There were 2 conflicts.
      - The first conflict was due to the `u_orig = u;` line being moved from before to after the `MV_FORCE_NUM`
        calls in the GT.M side. This was incorporated into the YottaDB side.
      - The second conflict was due to the new `MV_FORCE_CANONICAL` call in the GT.M side. But the YottaDB side
        already had code that cleared the `MV_NUM_MASK` bit and that is exactly what the `MV_FORCE_CANONICAL`
        call would also do so the GT.M side of the conflict was discarded.
    
    * sr_port/gbldefs.c: There was 1 conflict. It was due to a comment change for the `gtm_blkupgrade_flag`
      variable. This comment change was incorporated in the `ydb_blkupgrade_flag` variable line in the YottaDB
      side of the conflict and the GT.M side of the conflict was discarded.
    
    * sr_port/gdeerrors_ctl.c: There was 1 conflict.
      - The FIS copyright end year had been changed by mistake in dc895e7e from 2022 to 2024. This caused a
        conflict now because the GT.M V7.1-000 copy of this file (in `sr_x86_64/gdeerrors_ctl.c`) has the end
        year as 2023. The GT.M side of the conflict was picked and the YottaDB side of the conflict was discarded.
    
    * sr_port/gdsdbver.h: There was 1 conflict. The GT.M change was to remove a leading tab before a `BLK_ID_32_MVER`
      macro definition. This was already done in the YottaDB side in a prior commit so the GT.M side of the conflict
      was discarded.
    
    * sr_port/gdsfhead.h: There was 1 conflict. This was due to the GT.M side changing an `else if` check in the
      `SET_TN_WARN` macro to be just an `else`. The YottaDB side had a final `else` after the `else if` whereas
      the GT.M side did not have that final `else`. The GT.M change was incorporated into the YottaDB side by
      changing the pre-existing `else if` into an `else` and the final pre-existing `else` was removed.
    
    * sr_port/gtm_connect.c: There were 2 conflicts.
      - A `#include "gtm_select.h"` was replaced with a `#include "gtm_poll.h"` in the GT.M side. This was
        incorporated into the YottaDB side.
      - Logic that invoked a `select()` was reworked to invoke a `poll()` in the GT.M side. The YottaDB side
        had a conflict because of an additional EINTR check and invocation of `eintr_handling_check()`. The
        GT.M changes to `poll()` were picked up and the YottaDB invocation of `eintr_handling_check()` was
        incorporated on top of it.
    
    * sr_port/gtm_reservedDB.h: There was 1 conflict. The GT.M side had added a comment mentioning `gtm_statsdir`
      and `gtm_tmp` env var names. This was incorporated into the YottaDB side after changing the env var names
      to `ydb_statsdir` and `ydb_tmp` respectively.
    
    * sr_port/gvcst_blk_build.c: There was 1 conflict. The GT.M side had replaced a `mu_reorg_upgrd_dwngrd_in_prog`
      usage in an assert with `mu_upgrade_in_prog`. This was incorporated into the YottaDB side of the conflict
      and the GT.M side of the conflict was discarded.
    
    * sr_port/gvcst_put.c: There were 8 conflicts.
      - The GT.M side had moved a GBLREF of `skip_INVOKE_RESTART` and `ztwormhole_used` variables from the end
        to the beginning of a `#ifdef GTM_TRIGGER` block. This change was incorporated into the YottaDB side
        except the `ztwormhole_used` variable was renamed as `write_ztworm_jnl_rec` in a prior YDB commit so
        a GBLREF of `skip_INVOKE_RESTART` and `ztwormhole_used` were moved from the end to the beginning of
        the `#ifdef GTM_TRIGGER` block in the YottaDB side.
      - Local variable definition of `mychars` and `numsubs` was moved towards the end of the definition block
        in the GT.M side. This conflicted with `fp_flags` variable definition added in the YottaDB side a while
        ago. The GT.M side of the conflict was picked up and incorporated into the YottaDB side.
      - Local variable definitions were rearranged in the GT.M side in `gvcst_put2()`. To resolve this, I figured
        out the differences in the GT.M and YottaDB side before this merge and came up with the following.
        - null_block_id is present only in the YottaDB side
        - first_offset, next_offset and can_write_logical_jnlrecs are present only in the GT.M side.
        Therefore, I picked the GT.M side of the conflict and applied the above 2 bullets on top of it
        (i.e. added `null_block_id` definition and removed `first_offset` etc. definition) to resolve the conflict.
      - Local variable definition were rearranged in the GT.M side. Like in the previous bullet, I determined
        that `tp_lev` was removed in the YottaDB side previously and so incorporated this change after picking
        the GT.M side of the conflict.
      - Just like previous 2 bullets, figured out that `key_top` and `cp2_len` variable definitions were present
        only in the GT.M side previously and so removed these after picking the GT.M side of the conflict.
      - The GT.M side had changed an `if/else` code both of which invoked `BLK_SEG` into one `BLK_SEG` invocation
        using the `?` ternary operator and a `zeroes_blkid_collhdr` new variable. This change was picked and
        the YottaDB side of the conflict was discarded.
      - A set of `no_4byte_collhdr = 0` was removed from an `if (TREF(gtm_dirtree_collhdr_always))` in the GT.M side.
        And instead the `else` part was enabled by replacing it with an `if (!TREF(gtm_dirtree_collhdr_always))`.
        This change was incorporated into the YottaDB side (which instead used `TREF(ydb_dirtree_collhdr_always)`).
      - The GT.M side of the conflict had `BLK_SEG` logic using the new `zeroes_blkid_collhdr` variable whereas the
        YottaDB side of the conflict used a slightly elaborate `null_block_id` scheme from before. The YottaDB side
        of the conflict was discarded.
    
        As a consequence of the above changes, there was no more need for the `null_block_id` variable and so this
        variable definition was removed from the YottaDB side in the `gvcst_put2()` function.
    
    * sr_port/iosocket_connect.c: There were 7 conflicts.
      - A `#include "gtm_select.h"` was replaced with a `#include "gtm_poll.h"` in the GT.M side. This was
        incorporated into the YottaDB side.
      - The GT.M side had removed the `sel_time` variable definition. This change was incorporated into the
        YottaDB side of the conflict.
      - The GT.M side replaced `need_select = TRUE;` with `need_poll = TRUE;`. This change was incorporated
        into the YottaDB side of the conflict.
      - The GT.M side had changed a comment `unless outofband loop on select` to say `poll` instead. And had
        set the `poll_timeout` variable to `-1` instead of `sel_time = NULL;`. These changes were incorporated
        into the YottaDB side of the conflict.
      - The GT.M side had changed code under a `if (0 < msec_timeout)` to set `poll_timeout` to `msec_timeout`
        instead of setting the `sel_time` variable. The corresponding YottaDB side of the conflict was under
        a `if (0 < nsec_timeout)` check. Therefore replaced the `sel_time` variable initialization in the
        YottaDB side by a `poll_timeout = nsec_timeout;` initialization and discarded GT.M side of the conflict.
        While at this, also removed the now no-longer needed `cur_timeval` and `sel_time` initializations in
        the YottaDB side of the conflict.
      - The GT.M side changed a comment `loop on select` to say `loop on poll`. This was incorporated into the
        YottaDB side of the conflict and the GT.M side of the conflict was discarded.
      - The GT.M side changed a comment `do select` to say `do poll`. This was incorporated into the YottaDB
        side of the conflict and the GT.M side of the conflict was discarded. While at this, I noticed that a
        pre-existing call to the `HANDLE_EINTR_OUTSIDE_SYSTEM_CALL` macro had a comment referencing a `SELECT`
        macro which no longer exists (GT.M V7.1-000 removed it) and therefore removed the inaccurate comment.
    
      After the above, I noticed build failure due to the following issues and fixed it in the YottaDB side.
      - YottaDB side had a YottaDB-only code path with an assert using `need_select`. This was fixed to
        use the now GT.M V7.1-000 renamed variable `need_poll`.
      - GT.M side had used SET_FORCED_EXIT_STATE macro. This was changed to pass a sig parameter.
    
    * sr_port/iosocket_snr.c: There were 2 conflicts.
      - The GT.M side had removed a `#include <sys/poll.h>` and replaced a `#include "gtm_select.h"`
        with a `#include "gtm_poll.h"`. These changes were incorporated into the YottaDB side.
        Additionally, a pre-existing `static int fcntl_res;` declaration in the YottaDB side was
        removed as I did not see it serve any purpose.
      - The GT.M side had removed a `#ifndef GTM_USE_POLL_FOR_SUBSECOND_SELECT` code block and added
        an assert in the `#else` portion. These changes were incorporated into the YottaDB side
        while retaining the time granularity (nanosecond in YottaDB vs microsecond in GT.M).
    
      After the above, I noticed build failure due to the following issue and fixed it in the YottaDB side.
      - GT.M side had added a new `assert(time_for_read->at_sec == 0);`. The `at_sec` field is not valid
        in the YottaDB side. It was renamed to `tv_sec`.
    
    * sr_port/iosocket_wait.c: There were 9 conflicts.
      - The conflict was due to an empty line in the YottaDB side before the `#ifdef DEBUG_SOCKWAIT` line.
        This was preserved.
      - The conflict was due to 2 lines of variable definition (utimeout, utimeoutptr, cur_time, end_time)
        being of different types in the YottaDB and GT.M side (which was the case even in prior commits)
        and happening to be just before a `#ifdef USE_POLL` line that was removed in the GT.M side. This
        change already happened in the YottaDB side in a prior commit (378fda78) and so the GT.M side of
        the conflict was discarded.
      - The conflict was due to the `#endif` corresponding to the `#ifdef USE_POLL` from the previous bullet.
        Just like the previous bullet, the GT.M side of the conflict was discarded and the YottaDB side retained.
      - The GT.M side changed `nselect` to `npoll`. This was incorporated in the YottaDB side and the GT.M side
        of the conflict was discarded.
      - The GT.M side changed `nselect` to `npoll`. This was incorporated in the YottaDB side and the GT.M side
        of the conflict was discarded.
      - The GT.M side changed `nselect` to `npoll`. This was incorporated in the YottaDB side and the GT.M side
        of the conflict was discarded.
      - The GT.M side changed `nselect` to `npoll`. This was incorporated in the YottaDB side and the GT.M side
        of the conflict was discarded.
      - The GT.M side had removed a `#ifdef USE_POLL`. This change was already done in the YottaDB side in a
        prior commit 378fda78 and so the GT.M side of the conflict was discarded.
      - The GT.M side had removed a `#ifdef USE_POLL` and removed the `#ifdef USE_SELECT` code block. These
        changes were already done in the YottaDB side in a prior commit 378fda78 and so the GT.M side of the
        conflict was discarded.
    
    * sr_port/iosocket_write.c: There was 1 conflict.
      - The GT.M side had removed a `#ifndef USE_POLL` code block. These changes were already done in the
        YottaDB side in a prior commit 378fda78 and so the GT.M side of the conflict was discarded.
    
    * sr_port/merrors.msg: There were 4 conflicts.
      - A `UNUSEDMSG778` message was renamed as `FORCEDHALT2` in the GT.M side. This message was named as
        `UNUSEDMSG780` in the YottaDB side so that was renamed to `FORCEDHALT2` in the YottaDB side.
      - The MMNODYNDWNGRD, MMNODYNUPGRD and MUDWNGRDNRDY messages were nixed (and named as UNUSEDMSGxxx)
        in the GT.M side. The xxx numbering differs by 2 between the GT.M and YottaDB side. So I used the
        xxx numbering for the YottaDB side and named the 3 UNUSEDMSGxxx messages in the YottaDB side.
        The MUDWNGRDTN message was renamed as REORGUPCNFLCT in the GT.M side. This was incorporated into
        the YottaDB side. The MUUPGRDNRDY message text was changed a bit in the GT.M side. This was
        incorporated into the YottaDB side.
      - The MUTRUNCNOV4 message was nixed and renamed as UNUSEDMSG1455 in the GT.M side. This change was
        incorporated by nixing and renaming as UNUSEDMSG1457 in the YottaDB side.
      - The UNUSEDMSG1525 message was renamed as FDSIZELMT in the GT.M side. This change was incorporated
        in the YottaDB side by renaming the UNUSEDMSG1527 message as FDSIZELMT.
    
      The following files had conflicts but were resolved by automatically regenerating them after the
      above change.
      - sr_port/merrors_ansi.h : There were 4 conflicts.
      - sr_port/merrors_ctl.c : There were 7 conflicts.
    
    * sr_port/mlkdef.h: There was 1 conflict.
      - The GT.M change was to reduce the size of the `filler[]` array from 5 to 4. This change was
        incorporated into the YottaDB side of the conflict and the GT.M side of the conflict was discarded.
    
    * sr_port/mm_read.c: There were 3 conflicts. The conflicts were due to a lot of rework in the GT.M side.
      Just like in 95617101, I took a look at the YottaDB side of the changes to this file in the past and
      found the following changes that matter.
      - 95617101 : Removing the `INCR_GVSTATS_COUNTER` macro call and instead adding an
        `assert(dba_mm == cs_addrs->hdr->acc_meth);`.
      - a2687e31 : Fixing `clang-analyzer-deadcode.DeadStores` warnings from clang-tidy about value stored
        to `tmp_ondskblkver` variable never being read.
    
      So decided to checkout the GT.M V7.1-000 version of this file and then incorporated 95617101 on top
      of it. a2687e31 was not necessary since `tmp_ondskblkver` handling had been reworked in GT.M V7.1-000
      and so I expect `clang-tidy` to no longer issue such warnings as it did previously.
    
    * sr_port/mu_reorg.c: There was 1 conflict.
      - The GT.M side introduced a space before the `?` operator. This was incorporated into the YottaDB side.
    
    * sr_port/mu_reorg_upgrd_dwngrd.c: There were 4 conflicts. The conflicts were due to a lot of rework in
      the GT.M side. So decided to look at the YottaDB side of the changes to this file in the past and
      found the following changes that matter.
      - daa93b16 : Remove 2nd parameter to `gvcst_init()` call.
      - ea9950a1 : Add `ydb_skip_bml_num` handling.
      - dadf82f8 : Change `mu_getlst()` call to use `REGION` instead of `REG_NAME` qualifier name.
    
      So decided to checkout the GT.M V7.1-000 version of this file and then incorporated daa93b16 and
      dadf82f8 on top of it. ea9950a1 was not incorporated as the reworked GT.M V7.1-000 logic of this file
      did not have a for loop that scans bitmap blocks like before and so there was no need to have
      `ydb_skip_bml_num` handling in the new code.
    
    * sr_port/mu_split.c: There were 4 conflicts.
      - The GT.M side added a GBLREF of `mu_upgrade_in_prog`. This was incorporated into the YottaDB side.
      - The GT.M side had added a `if` block and an `assert(mu_upgrade_in_prog);` inside it. This was
        incorporated into the GT.M side.
      - The GT.M side had changed a `for` loop to a `while` loop. This showed up as a conflict because the
        YottaDB side had in a prior commit removed a line `reserve_bytes = i_max_fill;` whereas the GT.M side
        removed it only in V7.1-000. Since the removal happened on both sides, there is actually no conflict
        and so the YottaDB side of the conflict was discarded and the GT.M side of the conflict was picked.
      - The GT.M side removed a lot of lines under a `if (create_root)` block. This showed up as a conflict
        because the YottaDB side had added a `UNUSED(cse)` in this block in a prior commit to address a
        `clang-tidy` warning. But since the GT.M side removed a lot of lines including the warning line, there
        was no need to keep the YottaDB changes and so the YottaDB side of the conflict was discarded and the
        GT.M side of the conflict was picked.
    
    * sr_port/mu_upgrade_bmm.c: There were 11 conflicts. The conflicts were due to a lot of rework in
      the GT.M side. So decided to look at the YottaDB side of the changes to this file in the past and
      found the following changes that matter.
      - a2687e31 : Fix clang-tidy warnings after V7.0-001 merge
    
      So decided to checkout the GT.M V7.1-000 version of this file and do nothing else. I am hoping all
      the clang-tidy warnings would also have been indirectly fixed due to the rework. If clang-tidy still
      reports warnings on this file, I will fix that in a separate commit.
    
    * sr_port/mu_upgrd_header.c: There was 1 conflict.
      - The GT.M side had removed this entire function and made it obsolete by just doing a `return;`.
        This was because this function upgrades a V4 format header which we don't expect any users of
        at this point in time. So the YottaDB side of the conflict was discarded and the GT.M side of the
        conflict was picked.
    
    * sr_port/mumps.hlp: There was 1 conflict.
      - This was due to GT.M side changes in the `FULL_BOOLEAN` $VIEW keyword argument section. It now
        has the ability to display `EXTENDED_BOOLEAN` in V7.1-000. But this GT.M change was not picked
        as part of the merge into YottaDB. Therefore, the GT.M side of the conflict was discarded and
        the YottaDB side was preserved.
    
    * sr_port/mupip.hlp: There were 6 conflicts.
      - A note was added in the GT.M side to say DOWNGRADE is not supported V7.0-000 and up. This was
        incorporated into the YottaDB side.
      - The GT.M side added a note about `superseded:`. This was incorporated into the YottaDB side.
      - The GT.M side had changes in a description of statsdb extension. This was incorporated into the
        YottaDB side.
      - The GT.M side had changes to MUPIP STOP processing description to indicate `within a minute`. These
        were incorporated into the YottaDB side.
      - A `GT.M restricts` usage was changed to `MUPIP restricts`. This was incorporated into the YottaDB side.
      - A summary table of MUPIP qualifiers was reworked in the GT.M side. I looked at the YottaDB side of the
        table and it had minor changes which were actually incorrect so discarded the YottaDB side of the
        conflict and picked the GT.M side of the conflict.
    
    * sr_port/mupip_downgrade.c: There were 2 conflicts.
      - The GT.M side had removed this entire function and made it obsolete by issuing a `ERR_GTMCURUNSUPP`
        error. So the YottaDB side of all conflicts was discarded and the GT.M side of all conflicts was picked.
    
    * sr_port/mupip_reorg.c: There was 1 conflict.
      - There was a cosmetic change in the GT.M side (to remove a space before "can't be taken"). Since the
        difference between the GT.M and YottaDB sides of the conflict were otherwise cosmetic ("gvcst_init"
        vs gvcst_init()), I discarded the YottaDB side of the conflict and picked the GT.M side.
    
    * sr_port/mupip_upgrade.c: There were 7 conflicts. The conflicts were due to a lot of rework in the GT.M
      side. So decided to look at the YottaDB side of the changes to this file in the past and found that
      none of the below YottaDB commits are relevant anymore.
      - f4e63d6f : Change all GT.M release name usages (e.g. now_running field in db shared memory) to YottaDB release names
      - cc52a7aa : Fix gtmsecshr executable growth issue due to changes in #8
      - 78b03d7d : Fix build failure with newer gold linkers due to duplicate definition of various global variables
      - a2687e31 : Fix new clang-tidy warnings after V7.0-001 merge
    
      So decided to checkout the GT.M V7.1-000 version of this file and do nothing else. I am hoping all
      the clang-tidy warnings would also have been indirectly fixed due to the rework. If clang-tidy still
      reports warnings on this file, I will fix that in a separate commit.
    
      After this, I noticed a build failure because of `gvcst_init()` prototype being different between GT.M
      and YottaDB. In the latter, we don't have a 2nd parameter. So removed the 2nd NULL parameter from 2 calls.
    
    * sr_port/mur_blocks_free.c: There was 1 conflict.
      - The GT.M side had removed a line `TODO: why mess with anything in bml other than version?`. This change
        was incorporated into the YottaDB side of the conflict.
    
    * sr_port/mur_open_files.c: There was 1 conflict.
      - The GT.M side had changed an `error_def()` error name. This is no longer relevant in the YottaDB side
        and so the GT.M side of the conflict was discarded.
    
    * sr_port/op_fnfnumber.c: There was 1 conflict.
      - The GT.M side did a `ENSURE_STP_FREE_SPACE((MAX_NUM_SIZE * 2) + fract);` call in V7.1-000 whereas the
        YottaDB side already had code to do a `ENSURE_STP_FREE_SPACE(MAX(MAX_NUM_SIZE, t_src_p->str.len) * 2);`
        call. After looking into it a bit, I realized that the GT.M V7.1-000 change is correct and so
        incorporated the GT.M side ENSURE_STP_FREE_SPACE call into the YottaDB side of the conflict and then
        discarded the GT.M side of the conflict.
    
    * sr_port/op_lock2.c: There were 2 conflicts.
      - GT.M V7.1-000 had added `LCKLEVELLMT` and moved `ZALLOCTIMESTR` a few lines down. These changes were
        incorporated on the YottaDB side of the conflict and the GT.M side of the conflict was then discarded.
      - GT.M V7.1-000 had changed an `if (pvt_ptr1->level < 511)` check to a `if (LCKLEVELLMT >= ...)` and
        also moved a comment that was in the `if` line to the line following the `if` check. These changes
        were incorporated into the YottaDB side of the conflict (which was outside the <<<<<< conflict marker)
        and the GT.M side of the conflict was then discarded.
    
    * sr_port/repl_comm.c: There were 2 conflicts.
      - The conflict was just an empty line in the GT.M side. This was incorporated into the YottaDB side.
      - The conflict was a `assert(timeout < MILLISECS_IN_SEC);` line that showed up only in the YottaDB side.
        This was removed in the GT.M V7.1-000 side and `assert((timeout >= 0) && (timeout < MILLISECS_IN_SEC));`
        was added (a better assert) which already got included in the YottaDB side, so the YottaDB side of the
        conflict was discarded.
    
    * sr_port/repl_filter.c: There were 2 conflicts.
      - FIS copyright year changed. The GT.M side of the conflict was picked and the YottaDB side discarded.
      - The GT.M side of the conflict had a `#include "gtm_poll.h"` line. This was moved into the YottaDB side
        and as a result I also removed a `#ifdef GTM_USE_POLL_FOR_SUBSECOND_SELECT` block of code (3 lines)
        from the YottaDB side as this was removed in GT.M V7.1-000 and did the same `#include "gtm_poll.h"`.
    
    * sr_port/show_source_line.c: There was 1 conflict.
      - GT.M side had changed a VARLSTCNT from 2 to 3. This was incorporated into the YottaDB side of the conflict.
    
    * sr_port/t_end.c: There were 2 conflicts.
      - The GT.M side had moved the `CHECK_TN` macro invocation a few lines down. And this now showed up
        in the GT.M side of the conflict. This was moved to the YottaDB side of the conflict and the GT.M
        side of the conflict was then discarded.
      - The GT.M side had changed a `UNCONDITIONAL_EPOCH_ONLY(|| TRUE)` in an `if` check into a
        `|| (gtmDebugLevel & GDL_UnconditionalEpoch)` check. This was incorporated into the YottaDB side
        of the conflict and the GT.M side of the conflict was then discarded.
    
      Additionally, new usages of `gtmDebugLevel` were introduced in the GT.M side in this file. These were
      replaced by `ydbDebugLevel` usages in the YottaDB side.
    
    * sr_port/t_end_sysops.c: There were 3 conflicts.
      - The GT.M side had moved a `long_blk_id = ...` line and a `blk_id_sz = ...` line a few lines down.
        Both of these moves were incorporated into the YottaDB side. For the second line, the YottaDB side
        already had it inside a `DEBUG_ONLY()` macro invocation so that was added on top to the YottaDB
        side afterwards.
      - The GT.M side had removed 3 lines that initialized `v7_db_mode` and `v6_db_mode` variables. This
        change was incorporated into the YottaDB side of the conflict. And these variable declarations were
        also removed from the YottaDB side as they were no longer used.
      - The GT.M side had changed a `if (gds_t_acquired != mode)` check to add a `|| mu_upgrade_in_prog`.
        This change was incorporated into the YottaDB side of the conflict and the GT.M side of the
        conflict was then discarded.
    
    * sr_port/tcp_open.c: There were 4 conflicts.
      - The GT.M side had a FIS copyright year change. This was incorporated into the YottaDB side of the
        conflict.
      - The GT.M side had added `#include "gtm_poll.h"` (after deleting `#include "gtm_select.h"`). This
        was incorporated into the YottaDB side of the conflict.
      - The GT.M side had added 3 lines defining local variables `poll_timeout`, `poll_nfds` and `poll_fdlist`.
        This was incorporated into the YottaDB side of the conflict.
      - There were lots of changes (listed below) in the GT.M side. All of them were incorporated into the
        YottaDB side of the conflict and the GT.M side of the conflict was then discarded.
        - Removing `assertpro(FD_SETSIZE > lsock);` line
        - Removing `FD_ZERO(&tcp_fd);` line
        - Removing `FD_SET(lsock, &tcp_fd);` line
        - Removing `select()` call.
        - Adding `poll()` call with logic to initialize `poll_fdlist`, `poll_nfds` and `poll_timeout`.
        - Change LEN_AND_LIT("select()") to LEN_AND_LIT("poll()")
    
      After the above, I noticed build failure due to the following issue and fixed it in the YottaDB side.
      - GT.M had added a usage of `MICROSECS_IN_MSEC`. But this macro definition had been incorrectly
        removed from sr_port/mdef.h in a prior YottaDB commit 8682a571. That macro is now added back.
    
    * sr_port/tp_tend.c: There were 2 conflicts.
      - The GT.M side had moved the `CHECK_TN` macro invocation a few lines down. And this now showed up
        in the GT.M side of the conflict. This was moved to the YottaDB side of the conflict and the GT.M
        side of the conflict was then discarded.
      - The GT.M side had changed a `UNCONDITIONAL_EPOCH_ONLY(|| TRUE)` in an `if` check into a
        `|| (gtmDebugLevel & GDL_UnconditionalEpoch)` check. This was incorporated into the YottaDB side
        of the conflict and the GT.M side of the conflict was then discarded.
    
      Additionally, new usages of `gtmDebugLevel` were introduced in the GT.M side in this file. These were
      replaced by `ydbDebugLevel` usages in the YottaDB side.
    
    * sr_port/wbox_test_init.h: There was 1 conflict.
      - The GT.M side had added a `WBTEST_MU_STOP_THREAD` line. This was incorporated into the YottaDB side.
    
      Additionally, I noticed that the GT.M side had nixed `WBTEST_CONCBKUP_RUNNING`. It was not clear why
      the GT.M side decided to nix this. Since this message was used in `sr_port/mupip_backup.c` and also
      in the `v60001/concbkup` subtest in the YDBTest project (see commit 27dc6834 for more details), I
      decided to keep this message in the YottaDB side (i.e. reverted the GT.M side nix as part of the merge).
    
    * sr_port/wcs_flu.h: There was 1 conflict.
      - The GT.M side had removed code related to `UNCONDITIONAL_EPOCH`. This was incorporated into the
        YottaDB side of the conflict and the GT.M side of the conflict was then discarded.
    
    * sr_port/wcs_recover.c: There was 1 conflict.
      - The GT.M side had added a GBLREF of `mu_upgrade_in_prog`. This was incorporated into the YottaDB
        side of the conflict and the GT.M side of the conflict was then discarded.
    
    * sr_unix/check_utf8_support.csh: There was 1 conflict.
      - This script is a script to help with local builds of GT.M in their development environment. This
        script is not needed on the YottaDB side. I therefore discarded the GT.M side of the conflict.
    
    * sr_unix/cli_lex.c: There were 4 conflicts.
      - GT.M side added a `#include` of "gtmmsg.h" and "gtmimagename.h". These were incorporated into the
        YottaDB side of the conflict and the GT.M side of the conflict was then discarded.
      - GT.M side added a GBLREF, a LITREF and 2 error_def() calls. The first 2 were incorporated into the
        YottaDB side of the conflict (error_def() calls not needed in the YottaDB side) and the GT.M side
        of the conflict was then discarded.
      - GT.M side added a `need_null` variable declaration. This was incorporated into the YottaDB side.
      - GT.M side had added a `need_null = TRUE;` before a `break;` inside an `if` check. This change was
        incorporated into the YottaDB side.
    
    * sr_unix/configure.gtc: There was 1 conflict.
      - GT.M side had added a `if` check of `linux` and an `else` to handle `AIX`. But since YottaDB only
        works on linux, this GT.M change was discarded by checking out the YDB master copy of this file.
    
    * sr_unix/dec_err.c: There was 1 conflict.
      - GT.M side removed include of fao_parm.h, error.h, msg.h and added gtm_putmsg_list.h. These changes
        were incorporated into the YottaDB side (msg.h was already removed in a prior YDB commit).
    
    * sr_unix/dm_read.c: There were 2 conflicts.
      - GT.M side had added 3 lines of variable declarations (poll_timeout, poll_nfds and poll_fdlist).
        This change was incorporated into the YottaDB side.
      - GT.M side changed a `select()` usage to `poll()` in a comment under an `else if (0 == status)` check.
        And removed a `select() says it's ready to read ...` line and `assert(0 != FD_ISSET...)` line. All
        these changes were incorporated into the YottaDB side.
    
    * sr_unix/dsk_read.c: There was 1 conflict.
      - GT.M side removed an error_def(ERR_DSEBLKRDFAIL). This change was incorporated into the YottaDB side.
    
    * sr_unix/gds_rundown.c: There was 1 conflict.
      - GT.M side added 2 lines (an `if (mu_upgrade_in_prog)` check). This was incorporated into the YottaDB side.
    
    * sr_unix/generic_signal_handler.c: There were 3 conflicts.
      - GT.M side added a tab in the GBLREF line of `gtmMallocDepth`. This was incorporated into the YottaDB side.
      - GT.M side added a is_timer_initialized() function definition. This was incorporated into the YottaDB side.
      - GT.M side added `mu_stop_tm_array` related processing inside and after an `if (DEFER_EXIT_PROCESSING)` check.
        This was incorporated into the YottaDB side.
    
      After the above, I noticed build failure due to the following issues and fixed it in the YottaDB side.
      - GT.M side had used at_sec and at_usec. These were changed to use tv_sec and tv_nsec.
      - GT.M side had used SET_FORCED_EXIT_STATE macro. This was changed to pass a sig parameter.
    
    * sr_unix/generic_signal_handler.h: There was 1 conflict.
      - GT.M side added a function prototype for `is_timer_initialized`. This was incorporated into the YottaDB side.
    
    * sr_unix/gtm_env_init_sp.c: There was 1 conflict.
      - GT.M side changed a comment line from `Using MAX_FN_LEN ...` to `Using MAX_STATSDIR_LEN ...`.  This was
        incorporated into the YottaDB side.
    
    * sr_unix/gtmrecv_fetchresync.c: There were 3 conflicts.
      - GT.M side changed a select() usage to poll(). This was incorporated into the YottaDB side.
      - GT.M side replaced select() call with poll(). The conflict was due to a pre-existing cosmetic
        change in the YottaDB side and so the YottaDB side of the conflict was discarded and the GT.M
        side of the conflict was picked up.
      - GT.M side changed a select usage to poll. This was incorporated into the YottaDB side.
    
    * sr_unix/gtmsecshr.c: There was 1 conflict. A FIS copyright change. The GT.M side of the conflict was picked up.
    
    * sr_unix/gvcst_init_sysops.c: There was 1 conflict.
      - GT.M side had modified a call to gtm_shmget() to add more parameters. This change was incorporated
        into the YottaDB side.
    
    * sr_unix/iosocket_tls.c: There were 2 conflicts.
      - GT.M side removed a lot of SELECT_ONLY code but effectively did no change to the code in terms of the
        actual `poll()` call that was done. Therefore, the GT.M side of the conflict was discarded.
      - GT.M side changes a poll/select usage into poll. This was incorporated into the YottaDB side.
    
    * sr_unix/iott_rdone.c: There were 4 conflicts.
      - GT.M side removed 2 lines setting `input_timeval.tv_sec` and `input_timeval.tv_usec` and added a line
        that initialized `poll_timeout` to `msec_timeout`. These changes were incorporated into the YottaDB side
        with a minor modification and that is to set `poll_timeout` to `nsec_timeout / NANOSECS_IN_MSEC` as the
        timeout comes in as a nanosecond parameter in YottaDB (instead of milliseconds in GT.M). But we want to
        round up so a `DIVIDE_ROUND_UP(nsec_timeout, NANOSECS_IN_MSEC)` is used instead of `/` operator.
      - GT.M side removed 2 lines setting `input_timeval.tv_sec` and `input_timeval.tv_usec` and replaced it
        with a line settin `poll_timeout`. This was incorporated into the YottaDB side with the minor modification
        that the GT.M side used `at_sec` and `at_usec` whereas the YottaDB side uses `tv_sec` and `tv_nsec` members
        in the `cur_time` variable.
      - GT.M side replaced a select() call with poll(). This was incorporated into the YottaDB side.
      - GT.M side removed an `assert(FD_ISSET(...))`. This was incorporated into the YottaDB side.
    
    * sr_unix/iott_readfl.c: There were 5 conflicts.
      - GT.M side removed 2 lines of variable declarations for input_timeval and save_input_timeval. And added
        3 lines for poll related variables. All these were incorporated into the YottaDB side.
      - GT.M side replace input_timeval setting with poll_timeout setting based on `msec_timeout`. This was
        incorporated into the YottaDB side with the minor change to use `nsec_timeout` (nanosecond timeout)
        instead (as described in the first sub-bullet under `sr_unix/iott_rdone.c` above).
      - GT.M side replaced select() call with poll(). This was incorporated into the YottaDB side.
      - GT.M side removed an `assert(FD_ISSET(...))`. This was incorporated into the YottaDB side.
      - GT.M side removed 2 lines setting `input_timeval.tv_sec` and `input_timeval.tv_usec` and replaced it
        with a line settin `poll_timeout`. This was incorporated into the YottaDB side with the minor modification
        that the GT.M side used `at_sec` and `at_usec` whereas the YottaDB side uses `tv_sec` and `tv_nsec` members
        in the `cur_time` variable.
    
    * sr_unix/jnl_file_close_timer.c: There was 1 conflict.
      - GT.M side added a `#if defined(CHECKFORMULTIGENMJLS)` block of 3 GBLREFs. This was incorporated into the
        YottaDB side.
    
    * sr_unix/mu_cre_file.c: There was 1 conflict.
      - GT.M side added a GBLREF of mu_upgrade_in_prog. This was incorporated into the YottaDB side.
    
    * sr_unix/mu_truncate.c: There was 1 conflict.
      - GT.M side had removed an `else if` block involving ERR_MUTRUNCNOV4. This was incorporated into the
        YottaDB side.
    
    * sr_unix/mubfilcpy.c: There were 8 conflicts.
      - GT.M side removed a #include "gds_blk_downgrade.h". This was incorporated into the YottaDB side.
      - GT.M side had added 7 lines from `if (CANNOT_RETRY == RETRY)` to `FREE_COMMAND_STR_IF_NEEDED`.
        All these lines were incorporated into the YottaDB side.
      - GT.M side removed the ABORTBACKUP macro definition. This was incorporated into the YottaDB side.
      - GT.M side removed a declaration for variables `inoffp` and `outoffp`. This was already incorporated
        into the YottaDB side by git but the next 2 lines showed up as a conflict due to a prior YottaDB
        commit. The GT.M side of the conflict was discarded and the YottaDB side retained.
      - GT.M side had replaced 2 usages of `ABORTBACKUP` with `CLEANUP_AND_RETURN_FALSE(CANNOT_RETRY)`.
        This was incorporated into the YottaDB side.
      - GT.M side had replaced 1 usage of `ABORTBACKUP` with `CLEANUP_AND_RETURN_FALSE(CANNOT_RETRY)`.
        This was incorporated into the YottaDB side.
      - GT.M side had added EXDEV error handling after a `copy_file_range_p()` call and a
        `CLEANUP_AND_RETURN_FALSE(CAN_RETRY)` call in that case. This was incorporated into the YottaDB side.
        Note that GT.M V7.1-000 also changed the 2nd and 4th parameters of the `copy_file_range_p() call to
        be NULL (instead of uninitialized variables inoffp and outoffp). But this change was already
        incorporated into the YottaDB side in 95617101 and later changed to use &in_off and &out_off
        respectively so that part was left as is in the YottaDB side.  In addition, the GT.M side had moved
        a handle_err() call from a few lines later to this error code block. That was also incorporated in
        the YottaDB side.
      - GT.M side had removed the handle_err() call (in order to move it to the previous conflict bullet
        code block). This code was removed from the YottaDB side of the conflict.
    
      After the above, I noticed build failure due to the following issue and fixed it in the YottaDB side.
      - YottaDB side had a prior use of ABORTBACKUP macro in a YottaDB specific code path. This macro
        was replaced in GT.M V7.1-000 by a `CLEANUP_AND_RETURN_FALSE(CANNOT_RETRY)` call in all places
        so the YottaDB only call was also fixed in a similar fashion.
    
    * sr_unix/mupip_cmd.c: There was 1 conflict.
      - GT.M side had removed the MASTERMAP qualifier from mup_upgrade_qual[] and added 2 qualifiers
        DBG and FILE. These changes were incorporated into the YottaDB side.
    
    * sr_unix/mupip_restore.c: There was 1 conflict.
      - GT.M side changed select() to poll(). This was incorporated into the YottaDB side.
    
    * sr_unix/ojparams.c: There was 1 conflict.
      - GT.M side added a DEFER_INTERRUPTS invocation before open_memstream(). This was incorporated into
        the YottaDB side.
    
    * sr_unix/relinkctl.c: There was 1 conflict.
      - GT.M side had added a few more parameters to the gtm_shmget() call. This was incorporated into the
        YottaDB side of the code (outside of the conflict zone) and the GT.M side of the conflict was discarded.
    
    * sr_unix/relinkctl.h: There was 1 conflict.
      - GT.M side added a rtnobj_supersede field in the relinkrec_t structure and so modified a CACHELINE_PAD_COND
        call to pass 92 as the first parameter (instead of 88). This change was incorporated into the YottaDB side.
    
    * sr_unix/wcs_wtstart.c: There was 1 conflict.
      - GT.M side removed a #include of gds_blk_downgrade.h. This change was incorporated into the YottaDB side.
    
      Additionally, noticed that GT.M V7.1-000 had removed all code related to `IS_GDS_BLK_DOWNGRADE_NEEDED`
      macro usage (this is because on-the-fly downgrade to V4 format from V7 format is no longer supported).
      The YottaDB side had added one block of `IS_GDS_BLK_DOWNGRADE_NEEDED` code as part of commit 746e4edd
      in sr_unix/wcs_wtstart.c and so that code was removed as part of this commit as that is not a code path
      that will be reached anymore.
    
    * sr_unix_cm/gtcm_shmclean.c: There were 2 conflicts.
      - GT.M side had changed a FIS copyright change. The GT.M side of the conflict was picked up.
      - GT.M side added 2 more parameters to a gtm_shmget() call. This was incorporated into the YottaDB
        side in the file sr_unix_cm/gtcm_shmclean_main.c (the equivalent of the GT.M sr_unix/gtcm_shmclean.c).
    
    * sr_unix_gnp/cmi_close.c: There was 1 conflict.
      - GT.M side had changed a FIS copyright change. The GT.M side of the conflict was picked up.
    
    * sr_unix_gnp/cmi_init.c: There was 1 conflict.
      - GT.M side had changed a FIS copyright change. The GT.M side of the conflict was picked up.
    
    * sr_unix_gnp/cmj_clb_async.c: There was 1 conflict.
      - GT.M side had changed a FIS copyright change. The GT.M side of the conflict was picked up.
    
    * sr_unix_gnp/cmj_firstone.c: There were 2 conflicts.
      - GT.M side had changed a FIS copyright change. The GT.M side of the conflict was picked up.
      - GT.M side had replaced an `assertpro(FD_SETSIZE >= n);` with an `if (FD_SETSIZE < n)` check that
        then issued an ERR_FDSIZELMT error. This change was incorporated into the YottaDB side.
    
    * sr_unix_gnp/cmj_incoming_call.c: There were 3 conflicts.
      - GT.M side had changed a FIS copyright change. The GT.M side of the conflict was picked up.
      - GT.M side changed a while loop of ACCEPT calls into the ACCEPT_SOCKET macro. The pre-existing
        YottaDB side code had a eintr_handling_check() check that is also there in the YottaDB version
        of the ACCEPT_SOCKET macro and so this while loop change change was incorporated into the
        YottaDB side and it was okay for the eintr_handling_check() call inside the while loop to also
        be removed from the YottaDB side.
      - GT.M side changed a while loop of ACCEPT calls into the ACCEPT_SOCKET macro. Just like the previous
        bullet. The same resolution as the previous bullet was done here.
    8ed89575
    History
    [#1000] [V71000] Resolve conflicts during merge of GT.M V7.1-000 into YottaDB master
    Narayanan Iyer authored
    Background
    ----------
    * In general, each conflict section is identified by a sequence of `<<<<<<<`, `=======` and `>>>>>>>`
      markers.
    
      The block of code between the `<<<<<<<` and `=======` markers is code that was changed by YottaDB.
    
      The block of code between the `=======` and `>>>>>>>` markers is code that was changed by GT.M.
    
    * There were a few files where the FIS copyright was the only source of conflict. In that case, the
      FIS copyright change was picked and incorporated in the YottaDB version of the file. Those are not
      listed below.
    
    Changes
    -------
    * CMakeLists.txt : Discarded the GT.M changes to the `version` in this file as has been the procedure
      for prior GT.M release merges.
    
    * LICENSE : Discarded the GT.M changes to this file as has been the procedure for prior GT.M release merges.
    
    * sr_linux/release_name.h : Incorporated just the `GTM_VERSION` and `GTM_ZVERSION` macro change
      from the GT.M side. Discarded the rest of the GT.M changes.
    
    * sr_port/bml_busy.c : The GT.M change was to enhance an assert to also consider MUPIP UPGRADE as an
      exception. This change was incorporated into the YottaDB side.
    
    * sr_port/bool_expr.c: The GT.M change was to introduce 2 `ex_tail()` calls, replace an `ex_tail()` call
      with an `ex_arithlit()` call, modify an `else if` check to an `if` check and move the `UNARY_TAIL()` call.
      All these changes were incorporated into the YottaDB side.
    
    * The below compiler related files have conflicts between YottaDB master and GT.M V7.1-000.
    
      ```
      sr_port/bool_expr.c:66:<<<<<<< HEAD
      sr_port/bx_boollit.c:177:<<<<<<< HEAD
      sr_port/bx_boollit.c:254:<<<<<<< HEAD
      sr_port/bx_boollit.c:38:<<<<<<< HEAD
      sr_port/bx_boollit.c:65:<<<<<<< HEAD
      sr_port/bx_boolop.c:110:<<<<<<< HEAD
      sr_port/bx_boolop.c:32:<<<<<<< HEAD
      sr_port/bx_boolop.c:86:<<<<<<< HEAD
      sr_port/bx_relop.c:25:<<<<<<< HEAD
      sr_port/bx_tail.c:118:<<<<<<< HEAD
      sr_port/bx_tail.c:46:<<<<<<< HEAD
      sr_port/bx_tail.c:86:<<<<<<< HEAD
      sr_port/compiler.h:189:<<<<<<< HEAD
      sr_port/compiler.h:865:<<<<<<< HEAD
      sr_port/compiler.h:899:<<<<<<< HEAD
      sr_port/eval_expr.c:63:<<<<<<< HEAD
      sr_port/ex_tail.c:122:<<<<<<< HEAD
      sr_port/ex_tail.c:34:<<<<<<< HEAD
      sr_port/ex_tail.c:3:<<<<<<< HEAD
      sr_port/ex_tail.c:75:<<<<<<< HEAD
      sr_port/ex_tail.c:90:<<<<<<< HEAD
      sr_port/expr.c:37:<<<<<<< HEAD
      sr_port/fullbool.h:33:<<<<<<< HEAD
      sr_port/gvn.c:106:<<<<<<< HEAD
      sr_port/gvn.c:3:<<<<<<< HEAD
      sr_port/gvn.c:83:<<<<<<< HEAD
      sr_port/indirection.c:56:<<<<<<< HEAD
      sr_port/lkglvn.c:3:<<<<<<< HEAD
      sr_port/lkglvn.c:74:<<<<<<< HEAD
      sr_port/lkglvn.c:92:<<<<<<< HEAD
      sr_port/name_glvn.c:3:<<<<<<< HEAD
      sr_port/name_glvn.c:66:<<<<<<< HEAD
      sr_port/name_glvn.c:84:<<<<<<< HEAD
      sr_port/opcode_def.h:350:<<<<<<< HEAD
      sr_port/unary_tail.c:173:<<<<<<< HEAD
      sr_port/unary_tail.c:188:<<<<<<< HEAD
      ```
    
      One of the main changes related to the above threads is a change in the interface of `ex_tail()` to now
      pass 2 additional parameters in the GT.M side.
    
      As also mentioned at YDBTest#652 (comment 2289748595), I suspect this
      change was a result of the `gtm_boolean=3` enhancement to provide the option of eliminating all short
      circuiting.
    
      ex_tail() in the YottaDB side was already changed as part of `$ZYSQLNULL` changes to pass an additional
      parameter `depth` which is the depth of the boolean expression.
    
      The ex_tail() interface change in GT.M V7.1-000 caused a big conflict between the GT.M and YottaDB
      compiler code in lots of C files.
    
      After a lot of thought, I decided to skip picking the GT.M V7.1-000 changes to the above files.
      Also see the below discussion threads for more details.
      - YDBTest#648 (comment 2289719376)
      - YDBTest#649 (comment 2289743093)
      - YDBTest#652 (comment 2289748595)
    
      So what I did for each of the above files was to pick the `master` branch version of the file and
      restore that in this commit effectively reverting any GT.M V7.1-000 changes that were incorporated
      (as a conflict) by git in the prior 2 commits (particularly HEAD~2).
    
      While restoring `sr_port/compiler.h`, I noticed that the GT.M V7.1-000 changes had added the
      following function prototypes to this file
      - bx_sboolop()
      - bx_startbool()
      - ex_arithlit()
    
      Therefore, deleted the following new files as well as part of this commit
      - sr_port/bx_sboolop.c
      - sr_port/bx_startbool.c
      - sr_port/ex_arithlit.c
    
      And I noticed the following pre-existing files changed in GT.M V7.1-000 to accommodate the new
      `Extended Boolean evaluation without short circuiting` feature. So reverted the GT.M changes to
      these files as YottaDB was not going to support this feature (I don't think it is something
      users would want and is a lot of effort for us to merge due to the conflicts in the compiler code).
      - sr_port/gtm_env_init.c
      - sr_port/op_fnview.c
    
    * There is only one compiler change in GT.M V7.1-000 that I could understand from the GT.M release note.
      See the following thread for more details.
      - YDBTest#645 (comment 2285637632)
    
      I implemented this change in !1611. And that involved the following 2 files.
      - sr_port/ex_tail.c
      - sr_port/unary_tail.c
    
      I closed that MR and incorporated those changes to the above 2 files into this commit.
    
    * sr_port/cert_blk.c: There was 1 conflict. It was due to the GT.M side adding a `DEBUG_BLKS_TO_UPGRD_FORK_N_CORE`
      definition under a #ifdef/#else/#endif block. This was incorporated into the YottaDB side and the GT.M side of
      the conflict was discarded.
    
    * sr_port/db_auto_upgrade.c: There was 1 conflict. This was due to a prior commit 663a41a5 already
      incorporating the GT.M V7.1-000 change to this file ahead of time but modifying the comment differently.
      Since the actual assert change in the GT.M side was already incorporated correctly, I just discarded the
      GT.M side of the conflict and kept the YottaDB side of the comment.
    
      While at this, I noticed that the assert had a `==` originally but was changed to a `>=` in commit
      2577122b but that was changed back to `==` in 663a41a5 without an explanation in the commit message
      as to whether that was intentional or not. Since there is a big block of comment before the assert
      that describes the need for `>=`, I restored the `>=` in the assert (even though there have not been
      any test failures so far that demonstrate the need for the `>=`).
    
    * sr_port/dse_dmp.c: There was 1 conflict. A FIS copyright change. The GT.M side of the conflict was picked up.
    
    * sr_port/dse_f_blk.c: There was 1 conflict. Due to a SETUP_THREADGBL_ACCESS on the YottaDB side conflicting
      with a new DSE_DB_IS_TOO_OLD macro invocation on the GT.M side. The GT.M side of the conflict was picked up
      and added to the YottaDB side of the conflict.
    
    * sr_port/eintr_wrappers.h: There was 1 conflict. The GT.M side had removed the `SELECT` macro definition
      whereas the YottaDB side had some minor changes to it from a while back (due to EINTR handling). The
      macro was removed from the YottaDB side.
    
    * sr_port/flt_mod.c: There were 2 conflicts.
      - The first conflict was due to the `u_orig = u;` line being moved from before to after the `MV_FORCE_NUM`
        calls in the GT.M side. This was incorporated into the YottaDB side.
      - The second conflict was due to the new `MV_FORCE_CANONICAL` call in the GT.M side. But the YottaDB side
        already had code that cleared the `MV_NUM_MASK` bit and that is exactly what the `MV_FORCE_CANONICAL`
        call would also do so the GT.M side of the conflict was discarded.
    
    * sr_port/gbldefs.c: There was 1 conflict. It was due to a comment change for the `gtm_blkupgrade_flag`
      variable. This comment change was incorporated in the `ydb_blkupgrade_flag` variable line in the YottaDB
      side of the conflict and the GT.M side of the conflict was discarded.
    
    * sr_port/gdeerrors_ctl.c: There was 1 conflict.
      - The FIS copyright end year had been changed by mistake in dc895e7e from 2022 to 2024. This caused a
        conflict now because the GT.M V7.1-000 copy of this file (in `sr_x86_64/gdeerrors_ctl.c`) has the end
        year as 2023. The GT.M side of the conflict was picked and the YottaDB side of the conflict was discarded.
    
    * sr_port/gdsdbver.h: There was 1 conflict. The GT.M change was to remove a leading tab before a `BLK_ID_32_MVER`
      macro definition. This was already done in the YottaDB side in a prior commit so the GT.M side of the conflict
      was discarded.
    
    * sr_port/gdsfhead.h: There was 1 conflict. This was due to the GT.M side changing an `else if` check in the
      `SET_TN_WARN` macro to be just an `else`. The YottaDB side had a final `else` after the `else if` whereas
      the GT.M side did not have that final `else`. The GT.M change was incorporated into the YottaDB side by
      changing the pre-existing `else if` into an `else` and the final pre-existing `else` was removed.
    
    * sr_port/gtm_connect.c: There were 2 conflicts.
      - A `#include "gtm_select.h"` was replaced with a `#include "gtm_poll.h"` in the GT.M side. This was
        incorporated into the YottaDB side.
      - Logic that invoked a `select()` was reworked to invoke a `poll()` in the GT.M side. The YottaDB side
        had a conflict because of an additional EINTR check and invocation of `eintr_handling_check()`. The
        GT.M changes to `poll()` were picked up and the YottaDB invocation of `eintr_handling_check()` was
        incorporated on top of it.
    
    * sr_port/gtm_reservedDB.h: There was 1 conflict. The GT.M side had added a comment mentioning `gtm_statsdir`
      and `gtm_tmp` env var names. This was incorporated into the YottaDB side after changing the env var names
      to `ydb_statsdir` and `ydb_tmp` respectively.
    
    * sr_port/gvcst_blk_build.c: There was 1 conflict. The GT.M side had replaced a `mu_reorg_upgrd_dwngrd_in_prog`
      usage in an assert with `mu_upgrade_in_prog`. This was incorporated into the YottaDB side of the conflict
      and the GT.M side of the conflict was discarded.
    
    * sr_port/gvcst_put.c: There were 8 conflicts.
      - The GT.M side had moved a GBLREF of `skip_INVOKE_RESTART` and `ztwormhole_used` variables from the end
        to the beginning of a `#ifdef GTM_TRIGGER` block. This change was incorporated into the YottaDB side
        except the `ztwormhole_used` variable was renamed as `write_ztworm_jnl_rec` in a prior YDB commit so
        a GBLREF of `skip_INVOKE_RESTART` and `ztwormhole_used` were moved from the end to the beginning of
        the `#ifdef GTM_TRIGGER` block in the YottaDB side.
      - Local variable definition of `mychars` and `numsubs` was moved towards the end of the definition block
        in the GT.M side. This conflicted with `fp_flags` variable definition added in the YottaDB side a while
        ago. The GT.M side of the conflict was picked up and incorporated into the YottaDB side.
      - Local variable definitions were rearranged in the GT.M side in `gvcst_put2()`. To resolve this, I figured
        out the differences in the GT.M and YottaDB side before this merge and came up with the following.
        - null_block_id is present only in the YottaDB side
        - first_offset, next_offset and can_write_logical_jnlrecs are present only in the GT.M side.
        Therefore, I picked the GT.M side of the conflict and applied the above 2 bullets on top of it
        (i.e. added `null_block_id` definition and removed `first_offset` etc. definition) to resolve the conflict.
      - Local variable definition were rearranged in the GT.M side. Like in the previous bullet, I determined
        that `tp_lev` was removed in the YottaDB side previously and so incorporated this change after picking
        the GT.M side of the conflict.
      - Just like previous 2 bullets, figured out that `key_top` and `cp2_len` variable definitions were present
        only in the GT.M side previously and so removed these after picking the GT.M side of the conflict.
      - The GT.M side had changed an `if/else` code both of which invoked `BLK_SEG` into one `BLK_SEG` invocation
        using the `?` ternary operator and a `zeroes_blkid_collhdr` new variable. This change was picked and
        the YottaDB side of the conflict was discarded.
      - A set of `no_4byte_collhdr = 0` was removed from an `if (TREF(gtm_dirtree_collhdr_always))` in the GT.M side.
        And instead the `else` part was enabled by replacing it with an `if (!TREF(gtm_dirtree_collhdr_always))`.
        This change was incorporated into the YottaDB side (which instead used `TREF(ydb_dirtree_collhdr_always)`).
      - The GT.M side of the conflict had `BLK_SEG` logic using the new `zeroes_blkid_collhdr` variable whereas the
        YottaDB side of the conflict used a slightly elaborate `null_block_id` scheme from before. The YottaDB side
        of the conflict was discarded.
    
        As a consequence of the above changes, there was no more need for the `null_block_id` variable and so this
        variable definition was removed from the YottaDB side in the `gvcst_put2()` function.
    
    * sr_port/iosocket_connect.c: There were 7 conflicts.
      - A `#include "gtm_select.h"` was replaced with a `#include "gtm_poll.h"` in the GT.M side. This was
        incorporated into the YottaDB side.
      - The GT.M side had removed the `sel_time` variable definition. This change was incorporated into the
        YottaDB side of the conflict.
      - The GT.M side replaced `need_select = TRUE;` with `need_poll = TRUE;`. This change was incorporated
        into the YottaDB side of the conflict.
      - The GT.M side had changed a comment `unless outofband loop on select` to say `poll` instead. And had
        set the `poll_timeout` variable to `-1` instead of `sel_time = NULL;`. These changes were incorporated
        into the YottaDB side of the conflict.
      - The GT.M side had changed code under a `if (0 < msec_timeout)` to set `poll_timeout` to `msec_timeout`
        instead of setting the `sel_time` variable. The corresponding YottaDB side of the conflict was under
        a `if (0 < nsec_timeout)` check. Therefore replaced the `sel_time` variable initialization in the
        YottaDB side by a `poll_timeout = nsec_timeout;` initialization and discarded GT.M side of the conflict.
        While at this, also removed the now no-longer needed `cur_timeval` and `sel_time` initializations in
        the YottaDB side of the conflict.
      - The GT.M side changed a comment `loop on select` to say `loop on poll`. This was incorporated into the
        YottaDB side of the conflict and the GT.M side of the conflict was discarded.
      - The GT.M side changed a comment `do select` to say `do poll`. This was incorporated into the YottaDB
        side of the conflict and the GT.M side of the conflict was discarded. While at this, I noticed that a
        pre-existing call to the `HANDLE_EINTR_OUTSIDE_SYSTEM_CALL` macro had a comment referencing a `SELECT`
        macro which no longer exists (GT.M V7.1-000 removed it) and therefore removed the inaccurate comment.
    
      After the above, I noticed build failure due to the following issues and fixed it in the YottaDB side.
      - YottaDB side had a YottaDB-only code path with an assert using `need_select`. This was fixed to
        use the now GT.M V7.1-000 renamed variable `need_poll`.
      - GT.M side had used SET_FORCED_EXIT_STATE macro. This was changed to pass a sig parameter.
    
    * sr_port/iosocket_snr.c: There were 2 conflicts.
      - The GT.M side had removed a `#include <sys/poll.h>` and replaced a `#include "gtm_select.h"`
        with a `#include "gtm_poll.h"`. These changes were incorporated into the YottaDB side.
        Additionally, a pre-existing `static int fcntl_res;` declaration in the YottaDB side was
        removed as I did not see it serve any purpose.
      - The GT.M side had removed a `#ifndef GTM_USE_POLL_FOR_SUBSECOND_SELECT` code block and added
        an assert in the `#else` portion. These changes were incorporated into the YottaDB side
        while retaining the time granularity (nanosecond in YottaDB vs microsecond in GT.M).
    
      After the above, I noticed build failure due to the following issue and fixed it in the YottaDB side.
      - GT.M side had added a new `assert(time_for_read->at_sec == 0);`. The `at_sec` field is not valid
        in the YottaDB side. It was renamed to `tv_sec`.
    
    * sr_port/iosocket_wait.c: There were 9 conflicts.
      - The conflict was due to an empty line in the YottaDB side before the `#ifdef DEBUG_SOCKWAIT` line.
        This was preserved.
      - The conflict was due to 2 lines of variable definition (utimeout, utimeoutptr, cur_time, end_time)
        being of different types in the YottaDB and GT.M side (which was the case even in prior commits)
        and happening to be just before a `#ifdef USE_POLL` line that was removed in the GT.M side. This
        change already happened in the YottaDB side in a prior commit (378fda78) and so the GT.M side of
        the conflict was discarded.
      - The conflict was due to the `#endif` corresponding to the `#ifdef USE_POLL` from the previous bullet.
        Just like the previous bullet, the GT.M side of the conflict was discarded and the YottaDB side retained.
      - The GT.M side changed `nselect` to `npoll`. This was incorporated in the YottaDB side and the GT.M side
        of the conflict was discarded.
      - The GT.M side changed `nselect` to `npoll`. This was incorporated in the YottaDB side and the GT.M side
        of the conflict was discarded.
      - The GT.M side changed `nselect` to `npoll`. This was incorporated in the YottaDB side and the GT.M side
        of the conflict was discarded.
      - The GT.M side changed `nselect` to `npoll`. This was incorporated in the YottaDB side and the GT.M side
        of the conflict was discarded.
      - The GT.M side had removed a `#ifdef USE_POLL`. This change was already done in the YottaDB side in a
        prior commit 378fda78 and so the GT.M side of the conflict was discarded.
      - The GT.M side had removed a `#ifdef USE_POLL` and removed the `#ifdef USE_SELECT` code block. These
        changes were already done in the YottaDB side in a prior commit 378fda78 and so the GT.M side of the
        conflict was discarded.
    
    * sr_port/iosocket_write.c: There was 1 conflict.
      - The GT.M side had removed a `#ifndef USE_POLL` code block. These changes were already done in the
        YottaDB side in a prior commit 378fda78 and so the GT.M side of the conflict was discarded.
    
    * sr_port/merrors.msg: There were 4 conflicts.
      - A `UNUSEDMSG778` message was renamed as `FORCEDHALT2` in the GT.M side. This message was named as
        `UNUSEDMSG780` in the YottaDB side so that was renamed to `FORCEDHALT2` in the YottaDB side.
      - The MMNODYNDWNGRD, MMNODYNUPGRD and MUDWNGRDNRDY messages were nixed (and named as UNUSEDMSGxxx)
        in the GT.M side. The xxx numbering differs by 2 between the GT.M and YottaDB side. So I used the
        xxx numbering for the YottaDB side and named the 3 UNUSEDMSGxxx messages in the YottaDB side.
        The MUDWNGRDTN message was renamed as REORGUPCNFLCT in the GT.M side. This was incorporated into
        the YottaDB side. The MUUPGRDNRDY message text was changed a bit in the GT.M side. This was
        incorporated into the YottaDB side.
      - The MUTRUNCNOV4 message was nixed and renamed as UNUSEDMSG1455 in the GT.M side. This change was
        incorporated by nixing and renaming as UNUSEDMSG1457 in the YottaDB side.
      - The UNUSEDMSG1525 message was renamed as FDSIZELMT in the GT.M side. This change was incorporated
        in the YottaDB side by renaming the UNUSEDMSG1527 message as FDSIZELMT.
    
      The following files had conflicts but were resolved by automatically regenerating them after the
      above change.
      - sr_port/merrors_ansi.h : There were 4 conflicts.
      - sr_port/merrors_ctl.c : There were 7 conflicts.
    
    * sr_port/mlkdef.h: There was 1 conflict.
      - The GT.M change was to reduce the size of the `filler[]` array from 5 to 4. This change was
        incorporated into the YottaDB side of the conflict and the GT.M side of the conflict was discarded.
    
    * sr_port/mm_read.c: There were 3 conflicts. The conflicts were due to a lot of rework in the GT.M side.
      Just like in 95617101, I took a look at the YottaDB side of the changes to this file in the past and
      found the following changes that matter.
      - 95617101 : Removing the `INCR_GVSTATS_COUNTER` macro call and instead adding an
        `assert(dba_mm == cs_addrs->hdr->acc_meth);`.
      - a2687e31 : Fixing `clang-analyzer-deadcode.DeadStores` warnings from clang-tidy about value stored
        to `tmp_ondskblkver` variable never being read.
    
      So decided to checkout the GT.M V7.1-000 version of this file and then incorporated 95617101 on top
      of it. a2687e31 was not necessary since `tmp_ondskblkver` handling had been reworked in GT.M V7.1-000
      and so I expect `clang-tidy` to no longer issue such warnings as it did previously.
    
    * sr_port/mu_reorg.c: There was 1 conflict.
      - The GT.M side introduced a space before the `?` operator. This was incorporated into the YottaDB side.
    
    * sr_port/mu_reorg_upgrd_dwngrd.c: There were 4 conflicts. The conflicts were due to a lot of rework in
      the GT.M side. So decided to look at the YottaDB side of the changes to this file in the past and
      found the following changes that matter.
      - daa93b16 : Remove 2nd parameter to `gvcst_init()` call.
      - ea9950a1 : Add `ydb_skip_bml_num` handling.
      - dadf82f8 : Change `mu_getlst()` call to use `REGION` instead of `REG_NAME` qualifier name.
    
      So decided to checkout the GT.M V7.1-000 version of this file and then incorporated daa93b16 and
      dadf82f8 on top of it. ea9950a1 was not incorporated as the reworked GT.M V7.1-000 logic of this file
      did not have a for loop that scans bitmap blocks like before and so there was no need to have
      `ydb_skip_bml_num` handling in the new code.
    
    * sr_port/mu_split.c: There were 4 conflicts.
      - The GT.M side added a GBLREF of `mu_upgrade_in_prog`. This was incorporated into the YottaDB side.
      - The GT.M side had added a `if` block and an `assert(mu_upgrade_in_prog);` inside it. This was
        incorporated into the GT.M side.
      - The GT.M side had changed a `for` loop to a `while` loop. This showed up as a conflict because the
        YottaDB side had in a prior commit removed a line `reserve_bytes = i_max_fill;` whereas the GT.M side
        removed it only in V7.1-000. Since the removal happened on both sides, there is actually no conflict
        and so the YottaDB side of the conflict was discarded and the GT.M side of the conflict was picked.
      - The GT.M side removed a lot of lines under a `if (create_root)` block. This showed up as a conflict
        because the YottaDB side had added a `UNUSED(cse)` in this block in a prior commit to address a
        `clang-tidy` warning. But since the GT.M side removed a lot of lines including the warning line, there
        was no need to keep the YottaDB changes and so the YottaDB side of the conflict was discarded and the
        GT.M side of the conflict was picked.
    
    * sr_port/mu_upgrade_bmm.c: There were 11 conflicts. The conflicts were due to a lot of rework in
      the GT.M side. So decided to look at the YottaDB side of the changes to this file in the past and
      found the following changes that matter.
      - a2687e31 : Fix clang-tidy warnings after V7.0-001 merge
    
      So decided to checkout the GT.M V7.1-000 version of this file and do nothing else. I am hoping all
      the clang-tidy warnings would also have been indirectly fixed due to the rework. If clang-tidy still
      reports warnings on this file, I will fix that in a separate commit.
    
    * sr_port/mu_upgrd_header.c: There was 1 conflict.
      - The GT.M side had removed this entire function and made it obsolete by just doing a `return;`.
        This was because this function upgrades a V4 format header which we don't expect any users of
        at this point in time. So the YottaDB side of the conflict was discarded and the GT.M side of the
        conflict was picked.
    
    * sr_port/mumps.hlp: There was 1 conflict.
      - This was due to GT.M side changes in the `FULL_BOOLEAN` $VIEW keyword argument section. It now
        has the ability to display `EXTENDED_BOOLEAN` in V7.1-000. But this GT.M change was not picked
        as part of the merge into YottaDB. Therefore, the GT.M side of the conflict was discarded and
        the YottaDB side was preserved.
    
    * sr_port/mupip.hlp: There were 6 conflicts.
      - A note was added in the GT.M side to say DOWNGRADE is not supported V7.0-000 and up. This was
        incorporated into the YottaDB side.
      - The GT.M side added a note about `superseded:`. This was incorporated into the YottaDB side.
      - The GT.M side had changes in a description of statsdb extension. This was incorporated into the
        YottaDB side.
      - The GT.M side had changes to MUPIP STOP processing description to indicate `within a minute`. These
        were incorporated into the YottaDB side.
      - A `GT.M restricts` usage was changed to `MUPIP restricts`. This was incorporated into the YottaDB side.
      - A summary table of MUPIP qualifiers was reworked in the GT.M side. I looked at the YottaDB side of the
        table and it had minor changes which were actually incorrect so discarded the YottaDB side of the
        conflict and picked the GT.M side of the conflict.
    
    * sr_port/mupip_downgrade.c: There were 2 conflicts.
      - The GT.M side had removed this entire function and made it obsolete by issuing a `ERR_GTMCURUNSUPP`
        error. So the YottaDB side of all conflicts was discarded and the GT.M side of all conflicts was picked.
    
    * sr_port/mupip_reorg.c: There was 1 conflict.
      - There was a cosmetic change in the GT.M side (to remove a space before "can't be taken"). Since the
        difference between the GT.M and YottaDB sides of the conflict were otherwise cosmetic ("gvcst_init"
        vs gvcst_init()), I discarded the YottaDB side of the conflict and picked the GT.M side.
    
    * sr_port/mupip_upgrade.c: There were 7 conflicts. The conflicts were due to a lot of rework in the GT.M
      side. So decided to look at the YottaDB side of the changes to this file in the past and found that
      none of the below YottaDB commits are relevant anymore.
      - f4e63d6f : Change all GT.M release name usages (e.g. now_running field in db shared memory) to YottaDB release names
      - cc52a7aa : Fix gtmsecshr executable growth issue due to changes in #8
      - 78b03d7d : Fix build failure with newer gold linkers due to duplicate definition of various global variables
      - a2687e31 : Fix new clang-tidy warnings after V7.0-001 merge
    
      So decided to checkout the GT.M V7.1-000 version of this file and do nothing else. I am hoping all
      the clang-tidy warnings would also have been indirectly fixed due to the rework. If clang-tidy still
      reports warnings on this file, I will fix that in a separate commit.
    
      After this, I noticed a build failure because of `gvcst_init()` prototype being different between GT.M
      and YottaDB. In the latter, we don't have a 2nd parameter. So removed the 2nd NULL parameter from 2 calls.
    
    * sr_port/mur_blocks_free.c: There was 1 conflict.
      - The GT.M side had removed a line `TODO: why mess with anything in bml other than version?`. This change
        was incorporated into the YottaDB side of the conflict.
    
    * sr_port/mur_open_files.c: There was 1 conflict.
      - The GT.M side had changed an `error_def()` error name. This is no longer relevant in the YottaDB side
        and so the GT.M side of the conflict was discarded.
    
    * sr_port/op_fnfnumber.c: There was 1 conflict.
      - The GT.M side did a `ENSURE_STP_FREE_SPACE((MAX_NUM_SIZE * 2) + fract);` call in V7.1-000 whereas the
        YottaDB side already had code to do a `ENSURE_STP_FREE_SPACE(MAX(MAX_NUM_SIZE, t_src_p->str.len) * 2);`
        call. After looking into it a bit, I realized that the GT.M V7.1-000 change is correct and so
        incorporated the GT.M side ENSURE_STP_FREE_SPACE call into the YottaDB side of the conflict and then
        discarded the GT.M side of the conflict.
    
    * sr_port/op_lock2.c: There were 2 conflicts.
      - GT.M V7.1-000 had added `LCKLEVELLMT` and moved `ZALLOCTIMESTR` a few lines down. These changes were
        incorporated on the YottaDB side of the conflict and the GT.M side of the conflict was then discarded.
      - GT.M V7.1-000 had changed an `if (pvt_ptr1->level < 511)` check to a `if (LCKLEVELLMT >= ...)` and
        also moved a comment that was in the `if` line to the line following the `if` check. These changes
        were incorporated into the YottaDB side of the conflict (which was outside the <<<<<< conflict marker)
        and the GT.M side of the conflict was then discarded.
    
    * sr_port/repl_comm.c: There were 2 conflicts.
      - The conflict was just an empty line in the GT.M side. This was incorporated into the YottaDB side.
      - The conflict was a `assert(timeout < MILLISECS_IN_SEC);` line that showed up only in the YottaDB side.
        This was removed in the GT.M V7.1-000 side and `assert((timeout >= 0) && (timeout < MILLISECS_IN_SEC));`
        was added (a better assert) which already got included in the YottaDB side, so the YottaDB side of the
        conflict was discarded.
    
    * sr_port/repl_filter.c: There were 2 conflicts.
      - FIS copyright year changed. The GT.M side of the conflict was picked and the YottaDB side discarded.
      - The GT.M side of the conflict had a `#include "gtm_poll.h"` line. This was moved into the YottaDB side
        and as a result I also removed a `#ifdef GTM_USE_POLL_FOR_SUBSECOND_SELECT` block of code (3 lines)
        from the YottaDB side as this was removed in GT.M V7.1-000 and did the same `#include "gtm_poll.h"`.
    
    * sr_port/show_source_line.c: There was 1 conflict.
      - GT.M side had changed a VARLSTCNT from 2 to 3. This was incorporated into the YottaDB side of the conflict.
    
    * sr_port/t_end.c: There were 2 conflicts.
      - The GT.M side had moved the `CHECK_TN` macro invocation a few lines down. And this now showed up
        in the GT.M side of the conflict. This was moved to the YottaDB side of the conflict and the GT.M
        side of the conflict was then discarded.
      - The GT.M side had changed a `UNCONDITIONAL_EPOCH_ONLY(|| TRUE)` in an `if` check into a
        `|| (gtmDebugLevel & GDL_UnconditionalEpoch)` check. This was incorporated into the YottaDB side
        of the conflict and the GT.M side of the conflict was then discarded.
    
      Additionally, new usages of `gtmDebugLevel` were introduced in the GT.M side in this file. These were
      replaced by `ydbDebugLevel` usages in the YottaDB side.
    
    * sr_port/t_end_sysops.c: There were 3 conflicts.
      - The GT.M side had moved a `long_blk_id = ...` line and a `blk_id_sz = ...` line a few lines down.
        Both of these moves were incorporated into the YottaDB side. For the second line, the YottaDB side
        already had it inside a `DEBUG_ONLY()` macro invocation so that was added on top to the YottaDB
        side afterwards.
      - The GT.M side had removed 3 lines that initialized `v7_db_mode` and `v6_db_mode` variables. This
        change was incorporated into the YottaDB side of the conflict. And these variable declarations were
        also removed from the YottaDB side as they were no longer used.
      - The GT.M side had changed a `if (gds_t_acquired != mode)` check to add a `|| mu_upgrade_in_prog`.
        This change was incorporated into the YottaDB side of the conflict and the GT.M side of the
        conflict was then discarded.
    
    * sr_port/tcp_open.c: There were 4 conflicts.
      - The GT.M side had a FIS copyright year change. This was incorporated into the YottaDB side of the
        conflict.
      - The GT.M side had added `#include "gtm_poll.h"` (after deleting `#include "gtm_select.h"`). This
        was incorporated into the YottaDB side of the conflict.
      - The GT.M side had added 3 lines defining local variables `poll_timeout`, `poll_nfds` and `poll_fdlist`.
        This was incorporated into the YottaDB side of the conflict.
      - There were lots of changes (listed below) in the GT.M side. All of them were incorporated into the
        YottaDB side of the conflict and the GT.M side of the conflict was then discarded.
        - Removing `assertpro(FD_SETSIZE > lsock);` line
        - Removing `FD_ZERO(&tcp_fd);` line
        - Removing `FD_SET(lsock, &tcp_fd);` line
        - Removing `select()` call.
        - Adding `poll()` call with logic to initialize `poll_fdlist`, `poll_nfds` and `poll_timeout`.
        - Change LEN_AND_LIT("select()") to LEN_AND_LIT("poll()")
    
      After the above, I noticed build failure due to the following issue and fixed it in the YottaDB side.
      - GT.M had added a usage of `MICROSECS_IN_MSEC`. But this macro definition had been incorrectly
        removed from sr_port/mdef.h in a prior YottaDB commit 8682a571. That macro is now added back.
    
    * sr_port/tp_tend.c: There were 2 conflicts.
      - The GT.M side had moved the `CHECK_TN` macro invocation a few lines down. And this now showed up
        in the GT.M side of the conflict. This was moved to the YottaDB side of the conflict and the GT.M
        side of the conflict was then discarded.
      - The GT.M side had changed a `UNCONDITIONAL_EPOCH_ONLY(|| TRUE)` in an `if` check into a
        `|| (gtmDebugLevel & GDL_UnconditionalEpoch)` check. This was incorporated into the YottaDB side
        of the conflict and the GT.M side of the conflict was then discarded.
    
      Additionally, new usages of `gtmDebugLevel` were introduced in the GT.M side in this file. These were
      replaced by `ydbDebugLevel` usages in the YottaDB side.
    
    * sr_port/wbox_test_init.h: There was 1 conflict.
      - The GT.M side had added a `WBTEST_MU_STOP_THREAD` line. This was incorporated into the YottaDB side.
    
      Additionally, I noticed that the GT.M side had nixed `WBTEST_CONCBKUP_RUNNING`. It was not clear why
      the GT.M side decided to nix this. Since this message was used in `sr_port/mupip_backup.c` and also
      in the `v60001/concbkup` subtest in the YDBTest project (see commit 27dc6834 for more details), I
      decided to keep this message in the YottaDB side (i.e. reverted the GT.M side nix as part of the merge).
    
    * sr_port/wcs_flu.h: There was 1 conflict.
      - The GT.M side had removed code related to `UNCONDITIONAL_EPOCH`. This was incorporated into the
        YottaDB side of the conflict and the GT.M side of the conflict was then discarded.
    
    * sr_port/wcs_recover.c: There was 1 conflict.
      - The GT.M side had added a GBLREF of `mu_upgrade_in_prog`. This was incorporated into the YottaDB
        side of the conflict and the GT.M side of the conflict was then discarded.
    
    * sr_unix/check_utf8_support.csh: There was 1 conflict.
      - This script is a script to help with local builds of GT.M in their development environment. This
        script is not needed on the YottaDB side. I therefore discarded the GT.M side of the conflict.
    
    * sr_unix/cli_lex.c: There were 4 conflicts.
      - GT.M side added a `#include` of "gtmmsg.h" and "gtmimagename.h". These were incorporated into the
        YottaDB side of the conflict and the GT.M side of the conflict was then discarded.
      - GT.M side added a GBLREF, a LITREF and 2 error_def() calls. The first 2 were incorporated into the
        YottaDB side of the conflict (error_def() calls not needed in the YottaDB side) and the GT.M side
        of the conflict was then discarded.
      - GT.M side added a `need_null` variable declaration. This was incorporated into the YottaDB side.
      - GT.M side had added a `need_null = TRUE;` before a `break;` inside an `if` check. This change was
        incorporated into the YottaDB side.
    
    * sr_unix/configure.gtc: There was 1 conflict.
      - GT.M side had added a `if` check of `linux` and an `else` to handle `AIX`. But since YottaDB only
        works on linux, this GT.M change was discarded by checking out the YDB master copy of this file.
    
    * sr_unix/dec_err.c: There was 1 conflict.
      - GT.M side removed include of fao_parm.h, error.h, msg.h and added gtm_putmsg_list.h. These changes
        were incorporated into the YottaDB side (msg.h was already removed in a prior YDB commit).
    
    * sr_unix/dm_read.c: There were 2 conflicts.
      - GT.M side had added 3 lines of variable declarations (poll_timeout, poll_nfds and poll_fdlist).
        This change was incorporated into the YottaDB side.
      - GT.M side changed a `select()` usage to `poll()` in a comment under an `else if (0 == status)` check.
        And removed a `select() says it's ready to read ...` line and `assert(0 != FD_ISSET...)` line. All
        these changes were incorporated into the YottaDB side.
    
    * sr_unix/dsk_read.c: There was 1 conflict.
      - GT.M side removed an error_def(ERR_DSEBLKRDFAIL). This change was incorporated into the YottaDB side.
    
    * sr_unix/gds_rundown.c: There was 1 conflict.
      - GT.M side added 2 lines (an `if (mu_upgrade_in_prog)` check). This was incorporated into the YottaDB side.
    
    * sr_unix/generic_signal_handler.c: There were 3 conflicts.
      - GT.M side added a tab in the GBLREF line of `gtmMallocDepth`. This was incorporated into the YottaDB side.
      - GT.M side added a is_timer_initialized() function definition. This was incorporated into the YottaDB side.
      - GT.M side added `mu_stop_tm_array` related processing inside and after an `if (DEFER_EXIT_PROCESSING)` check.
        This was incorporated into the YottaDB side.
    
      After the above, I noticed build failure due to the following issues and fixed it in the YottaDB side.
      - GT.M side had used at_sec and at_usec. These were changed to use tv_sec and tv_nsec.
      - GT.M side had used SET_FORCED_EXIT_STATE macro. This was changed to pass a sig parameter.
    
    * sr_unix/generic_signal_handler.h: There was 1 conflict.
      - GT.M side added a function prototype for `is_timer_initialized`. This was incorporated into the YottaDB side.
    
    * sr_unix/gtm_env_init_sp.c: There was 1 conflict.
      - GT.M side changed a comment line from `Using MAX_FN_LEN ...` to `Using MAX_STATSDIR_LEN ...`.  This was
        incorporated into the YottaDB side.
    
    * sr_unix/gtmrecv_fetchresync.c: There were 3 conflicts.
      - GT.M side changed a select() usage to poll(). This was incorporated into the YottaDB side.
      - GT.M side replaced select() call with poll(). The conflict was due to a pre-existing cosmetic
        change in the YottaDB side and so the YottaDB side of the conflict was discarded and the GT.M
        side of the conflict was picked up.
      - GT.M side changed a select usage to poll. This was incorporated into the YottaDB side.
    
    * sr_unix/gtmsecshr.c: There was 1 conflict. A FIS copyright change. The GT.M side of the conflict was picked up.
    
    * sr_unix/gvcst_init_sysops.c: There was 1 conflict.
      - GT.M side had modified a call to gtm_shmget() to add more parameters. This change was incorporated
        into the YottaDB side.
    
    * sr_unix/iosocket_tls.c: There were 2 conflicts.
      - GT.M side removed a lot of SELECT_ONLY code but effectively did no change to the code in terms of the
        actual `poll()` call that was done. Therefore, the GT.M side of the conflict was discarded.
      - GT.M side changes a poll/select usage into poll. This was incorporated into the YottaDB side.
    
    * sr_unix/iott_rdone.c: There were 4 conflicts.
      - GT.M side removed 2 lines setting `input_timeval.tv_sec` and `input_timeval.tv_usec` and added a line
        that initialized `poll_timeout` to `msec_timeout`. These changes were incorporated into the YottaDB side
        with a minor modification and that is to set `poll_timeout` to `nsec_timeout / NANOSECS_IN_MSEC` as the
        timeout comes in as a nanosecond parameter in YottaDB (instead of milliseconds in GT.M). But we want to
        round up so a `DIVIDE_ROUND_UP(nsec_timeout, NANOSECS_IN_MSEC)` is used instead of `/` operator.
      - GT.M side removed 2 lines setting `input_timeval.tv_sec` and `input_timeval.tv_usec` and replaced it
        with a line settin `poll_timeout`. This was incorporated into the YottaDB side with the minor modification
        that the GT.M side used `at_sec` and `at_usec` whereas the YottaDB side uses `tv_sec` and `tv_nsec` members
        in the `cur_time` variable.
      - GT.M side replaced a select() call with poll(). This was incorporated into the YottaDB side.
      - GT.M side removed an `assert(FD_ISSET(...))`. This was incorporated into the YottaDB side.
    
    * sr_unix/iott_readfl.c: There were 5 conflicts.
      - GT.M side removed 2 lines of variable declarations for input_timeval and save_input_timeval. And added
        3 lines for poll related variables. All these were incorporated into the YottaDB side.
      - GT.M side replace input_timeval setting with poll_timeout setting based on `msec_timeout`. This was
        incorporated into the YottaDB side with the minor change to use `nsec_timeout` (nanosecond timeout)
        instead (as described in the first sub-bullet under `sr_unix/iott_rdone.c` above).
      - GT.M side replaced select() call with poll(). This was incorporated into the YottaDB side.
      - GT.M side removed an `assert(FD_ISSET(...))`. This was incorporated into the YottaDB side.
      - GT.M side removed 2 lines setting `input_timeval.tv_sec` and `input_timeval.tv_usec` and replaced it
        with a line settin `poll_timeout`. This was incorporated into the YottaDB side with the minor modification
        that the GT.M side used `at_sec` and `at_usec` whereas the YottaDB side uses `tv_sec` and `tv_nsec` members
        in the `cur_time` variable.
    
    * sr_unix/jnl_file_close_timer.c: There was 1 conflict.
      - GT.M side added a `#if defined(CHECKFORMULTIGENMJLS)` block of 3 GBLREFs. This was incorporated into the
        YottaDB side.
    
    * sr_unix/mu_cre_file.c: There was 1 conflict.
      - GT.M side added a GBLREF of mu_upgrade_in_prog. This was incorporated into the YottaDB side.
    
    * sr_unix/mu_truncate.c: There was 1 conflict.
      - GT.M side had removed an `else if` block involving ERR_MUTRUNCNOV4. This was incorporated into the
        YottaDB side.
    
    * sr_unix/mubfilcpy.c: There were 8 conflicts.
      - GT.M side removed a #include "gds_blk_downgrade.h". This was incorporated into the YottaDB side.
      - GT.M side had added 7 lines from `if (CANNOT_RETRY == RETRY)` to `FREE_COMMAND_STR_IF_NEEDED`.
        All these lines were incorporated into the YottaDB side.
      - GT.M side removed the ABORTBACKUP macro definition. This was incorporated into the YottaDB side.
      - GT.M side removed a declaration for variables `inoffp` and `outoffp`. This was already incorporated
        into the YottaDB side by git but the next 2 lines showed up as a conflict due to a prior YottaDB
        commit. The GT.M side of the conflict was discarded and the YottaDB side retained.
      - GT.M side had replaced 2 usages of `ABORTBACKUP` with `CLEANUP_AND_RETURN_FALSE(CANNOT_RETRY)`.
        This was incorporated into the YottaDB side.
      - GT.M side had replaced 1 usage of `ABORTBACKUP` with `CLEANUP_AND_RETURN_FALSE(CANNOT_RETRY)`.
        This was incorporated into the YottaDB side.
      - GT.M side had added EXDEV error handling after a `copy_file_range_p()` call and a
        `CLEANUP_AND_RETURN_FALSE(CAN_RETRY)` call in that case. This was incorporated into the YottaDB side.
        Note that GT.M V7.1-000 also changed the 2nd and 4th parameters of the `copy_file_range_p() call to
        be NULL (instead of uninitialized variables inoffp and outoffp). But this change was already
        incorporated into the YottaDB side in 95617101 and later changed to use &in_off and &out_off
        respectively so that part was left as is in the YottaDB side.  In addition, the GT.M side had moved
        a handle_err() call from a few lines later to this error code block. That was also incorporated in
        the YottaDB side.
      - GT.M side had removed the handle_err() call (in order to move it to the previous conflict bullet
        code block). This code was removed from the YottaDB side of the conflict.
    
      After the above, I noticed build failure due to the following issue and fixed it in the YottaDB side.
      - YottaDB side had a prior use of ABORTBACKUP macro in a YottaDB specific code path. This macro
        was replaced in GT.M V7.1-000 by a `CLEANUP_AND_RETURN_FALSE(CANNOT_RETRY)` call in all places
        so the YottaDB only call was also fixed in a similar fashion.
    
    * sr_unix/mupip_cmd.c: There was 1 conflict.
      - GT.M side had removed the MASTERMAP qualifier from mup_upgrade_qual[] and added 2 qualifiers
        DBG and FILE. These changes were incorporated into the YottaDB side.
    
    * sr_unix/mupip_restore.c: There was 1 conflict.
      - GT.M side changed select() to poll(). This was incorporated into the YottaDB side.
    
    * sr_unix/ojparams.c: There was 1 conflict.
      - GT.M side added a DEFER_INTERRUPTS invocation before open_memstream(). This was incorporated into
        the YottaDB side.
    
    * sr_unix/relinkctl.c: There was 1 conflict.
      - GT.M side had added a few more parameters to the gtm_shmget() call. This was incorporated into the
        YottaDB side of the code (outside of the conflict zone) and the GT.M side of the conflict was discarded.
    
    * sr_unix/relinkctl.h: There was 1 conflict.
      - GT.M side added a rtnobj_supersede field in the relinkrec_t structure and so modified a CACHELINE_PAD_COND
        call to pass 92 as the first parameter (instead of 88). This change was incorporated into the YottaDB side.
    
    * sr_unix/wcs_wtstart.c: There was 1 conflict.
      - GT.M side removed a #include of gds_blk_downgrade.h. This change was incorporated into the YottaDB side.
    
      Additionally, noticed that GT.M V7.1-000 had removed all code related to `IS_GDS_BLK_DOWNGRADE_NEEDED`
      macro usage (this is because on-the-fly downgrade to V4 format from V7 format is no longer supported).
      The YottaDB side had added one block of `IS_GDS_BLK_DOWNGRADE_NEEDED` code as part of commit 746e4edd
      in sr_unix/wcs_wtstart.c and so that code was removed as part of this commit as that is not a code path
      that will be reached anymore.
    
    * sr_unix_cm/gtcm_shmclean.c: There were 2 conflicts.
      - GT.M side had changed a FIS copyright change. The GT.M side of the conflict was picked up.
      - GT.M side added 2 more parameters to a gtm_shmget() call. This was incorporated into the YottaDB
        side in the file sr_unix_cm/gtcm_shmclean_main.c (the equivalent of the GT.M sr_unix/gtcm_shmclean.c).
    
    * sr_unix_gnp/cmi_close.c: There was 1 conflict.
      - GT.M side had changed a FIS copyright change. The GT.M side of the conflict was picked up.
    
    * sr_unix_gnp/cmi_init.c: There was 1 conflict.
      - GT.M side had changed a FIS copyright change. The GT.M side of the conflict was picked up.
    
    * sr_unix_gnp/cmj_clb_async.c: There was 1 conflict.
      - GT.M side had changed a FIS copyright change. The GT.M side of the conflict was picked up.
    
    * sr_unix_gnp/cmj_firstone.c: There were 2 conflicts.
      - GT.M side had changed a FIS copyright change. The GT.M side of the conflict was picked up.
      - GT.M side had replaced an `assertpro(FD_SETSIZE >= n);` with an `if (FD_SETSIZE < n)` check that
        then issued an ERR_FDSIZELMT error. This change was incorporated into the YottaDB side.
    
    * sr_unix_gnp/cmj_incoming_call.c: There were 3 conflicts.
      - GT.M side had changed a FIS copyright change. The GT.M side of the conflict was picked up.
      - GT.M side changed a while loop of ACCEPT calls into the ACCEPT_SOCKET macro. The pre-existing
        YottaDB side code had a eintr_handling_check() check that is also there in the YottaDB version
        of the ACCEPT_SOCKET macro and so this while loop change change was incorporated into the
        YottaDB side and it was okay for the eintr_handling_check() call inside the while loop to also
        be removed from the YottaDB side.
      - GT.M side changed a while loop of ACCEPT calls into the ACCEPT_SOCKET macro. Just like the previous
        bullet. The same resolution as the previous bullet was done here.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
This project is licensed under the GNU Affero General Public License v3.0. Learn more