tebako 0.8.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 690c1fae126210478beca87208f26cc10aaad5b7081f41d7e25bcc994677d201
4
- data.tar.gz: 6cce9afe63c5195679c8fb31a2462a52dce5e31be005e4b1187e2c95672cb2f5
3
+ metadata.gz: 91362403f264faf856ec42bf6eb6d8411a595ba037e8d102132147301975f4b1
4
+ data.tar.gz: 559b3f4aa269c5b0d0b271ebce87046f591adf229afb51a2f5715ac184b2e3de
5
5
  SHA512:
6
- metadata.gz: e507d6cb7f1cae51c154c10678a14f2954bca20876950979d3c47d9cccbce098e62bfc11f0a1d0514e3de49bf5f51dc5c9acad842a34ea30bddcf1db3a481d70
7
- data.tar.gz: cf04ee58de3be8691c9f1e949707f5161d76fd0b056f039c6aa9b5cfd1261978d7458714810e7d5a62c4e73bb4eee536dc2a7a4c42646f9d283dc96c7f6f0ed3
6
+ metadata.gz: 40d38a252bd29670656293ba1d5beb9bf166159a15380e2e8862448d0312146364882bb441c20891d53aa9742ff07c918f3ff2bb5bb1963b7978392376eb8ea4
7
+ data.tar.gz: 91228cf1d10a6392b0725418eacfb35a00f982f8a111ed95811c37353a10720f7e786bc169036e41f335faf38e148caf7cdb63410b0fa025bdbf032401b481c5
data/CMakeLists.txt CHANGED
@@ -193,18 +193,18 @@ set(RUBY_STASH_DIR ${DEPS}/stash_${RUBY_VER})
193
193
  string(SUBSTRING ${RUBY_VER} 0 3 RUBY_VER_BASE)
194
194
  string(CONCAT RUBY_API_VER ${RUBY_VER_BASE} ".0")
195
195
 
196
- if(DWARFS_PRELOAD)
197
- def_ext_prj_t(LIBDWARFS_WR "0.5.5" "7bf8e5b4432f35b65f6034f614067c2018995c1bebaf935e8cdddc1a3e045c01")
198
-
199
- string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+).*" "\\1;\\2;\\3" LIBDWARFS_WR_VER_COMPONENTS ${LIBDWARFS_WR_VER})
200
-
201
- list(GET LIBDWARFS_WR_VER_COMPONENTS 0 LIBDWARFS_WR_VER_MAJOR)
202
- list(GET LIBDWARFS_WR_VER_COMPONENTS 1 LIBDWARFS_WR_VER_MINOR)
203
- list(GET LIBDWARFS_WR_VER_COMPONENTS 2 LIBDWARFS_WR_VER_PATCH)
204
- set (LIBDWARFS_WR_VER_M ${LIBDWARFS_WR_VER_MAJOR}.${LIBDWARFS_WR_VER_MINOR}.${LIBDWARFS_WR_VER_PATCH})
205
- else(DWARFS_PRELOAD)
206
- def_ext_prj_g(DWARFS_WR "v0.5.5")
207
- endif(DWARFS_PRELOAD)
196
+ #if(DWARFS_PRELOAD)
197
+ # def_ext_prj_t(LIBDWARFS_WR "0.5.5" "7bf8e5b4432f35b65f6034f614067c2018995c1bebaf935e8cdddc1a3e045c01")
198
+ #
199
+ # string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+).*" "\\1;\\2;\\3" LIBDWARFS_WR_VER_COMPONENTS ${LIBDWARFS_WR_VER})
200
+ #
201
+ # list(GET LIBDWARFS_WR_VER_COMPONENTS 0 LIBDWARFS_WR_VER_MAJOR)
202
+ # list(GET LIBDWARFS_WR_VER_COMPONENTS 1 LIBDWARFS_WR_VER_MINOR)
203
+ # list(GET LIBDWARFS_WR_VER_COMPONENTS 2 LIBDWARFS_WR_VER_PATCH)
204
+ # set (LIBDWARFS_WR_VER_M ${LIBDWARFS_WR_VER_MAJOR}.${LIBDWARFS_WR_VER_MINOR}.${LIBDWARFS_WR_VER_PATCH})
205
+ #else(DWARFS_PRELOAD)
206
+ def_ext_prj_g(DWARFS_WR "v0.5.7")
207
+ #endif(DWARFS_PRELOAD)
208
208
 
209
209
  set(LIBYAML_RUBY_OPTION "")
210
210
  if(${RUBY_VER} VERSION_LESS "3.2.0")
data/README.adoc CHANGED
@@ -518,6 +518,40 @@ correct version.
518
518
  Run the following command prior to using Tebako, or add it into your shell
519
519
  profile.
520
520
 
521
+ ====== jemalloc Library Build
522
+
523
+ The `libdwarfs` build script creates an additional jemalloc installation on macOS. This is done to satisfy the magic applied by folly during linking but uses a static library.
524
+ If the library is created in an emulated environment (QEMU, Rosetta, etc.), there are known issues (link:https://github.com/jemalloc/jemalloc/issues/1997[jemalloc issue #1997]) where jemalloc incorrectly defines the number of significant virtual address bits (lg-vaddr parameter).
525
+
526
+ These issues can be fixed by explicitly setting the `--with-lg-vaddr` parameter for the jemalloc build. We decided not to automate this since we do not feel that we can provide reasonable test coverage. Instead, our build script accepts the `LG_VADDR` environment variable and passes it to the jemalloc build as `--with-lg-vaddr=${LG_VADDR}`.
527
+
528
+ The `LG_VADDR` parameter specifies the number of significant virtual address bits, which can vary based on the CPU architecture and emulation status.
529
+
530
+ Simple script to set `LG_VADDR`. Please note that it is provided for illustration only.
531
+
532
+ [source,sh]
533
+ ----
534
+ #!/bin/bash
535
+
536
+ # Check the CPU architecture
537
+ ARCH=$(uname -m)
538
+
539
+ # Check if running under Rosetta 2 emulation
540
+ if [[ "$ARCH" == "x86_64" && $(sysctl -n sysctl.proc_translated) == "1" ]]; then
541
+ echo "Running on Apple Silicon under Rosetta 2 emulation"
542
+ export LG_VADDR=39
543
+ elif [[ "$ARCH" == "arm64" ]]; then
544
+ echo "Running on Apple Silicon"
545
+ export LG_VADDR=39
546
+ else
547
+ echo "Running on Intel Silicon"
548
+ export LG_VADDR=48
549
+ fi
550
+
551
+ echo "Setting lg-vaddr to $LG_VADDR"
552
+ ----
553
+
554
+
521
555
  [source,sh]
522
556
  ----
523
557
  export PATH="$(brew --prefix bison)/bin:$PATH"
data/common.env CHANGED
@@ -1,5 +1,5 @@
1
1
  BUILD_TYPE=Release
2
2
  DEPS=deps
3
3
  INCBIN_TAG=348e36b
4
- DWARFS_WR_TAG=v0.5.5
4
+ DWARFS_WR_TAG=v0.5.7
5
5
  RUBY_VER=3.1.6
@@ -88,9 +88,23 @@ module Tebako
88
88
  SUBST
89
89
  }.freeze
90
90
 
91
- # DARWIN_CONFIGURE_PATCH = {
92
- # "EXTDLDFLAGS=\"-bundle_loader '\\$(BUILTRUBY)'\"" => ""
93
- # }.freeze
91
+ # The logic for statically linked extensions is broken entirely in the latest Ruby versions.
92
+ # The code below looks reasonble - we do not set -bundle_loader when building with -with-static-ext option
93
+ # However Gems bundled with Ruby just ignore with-static-ext option and build extensions as shared libraries
94
+ # So the -bundler_loader option is required for them to link.
95
+ # It is strange that it is disabled in any case because this option does not create any issues for static
96
+ # libraries.
97
+ # ---------------------------------------------------
98
+ # elif test "x$EXTSTATIC" = x
99
+ # then :
100
+ #
101
+ # # When building exts as bundles, a mach-o bundle needs to know its loader
102
+ # # program to bind symbols from the ruby executable
103
+ # EXTDLDFLAGS="-bundle_loader '\$(BUILTRUBY)'"
104
+
105
+ DARWIN_CONFIGURE_PATCH = {
106
+ "elif test \"x$EXTSTATIC\" = x" => "elif true"
107
+ }.freeze
94
108
 
95
109
  OPENSSL_EXTCONF_RB_SUBST = <<~SUBST
96
110
  # Start of tebako patch
@@ -137,11 +151,7 @@ module Tebako
137
151
  patch_map = get_base_patch_map(mount_point)
138
152
 
139
153
  # ....................................................
140
- # Fixing (bypassing) configure script bug where a variable is used before initialization
141
- # On MacOS it generates bod EXTDLDFLAGS WITH -bundle_loader <missing parameter>
142
- # However, it loooks likes EXTDLDFLAGS are just redundant for final Ruby linkage, so we are
143
- # just removing it on pass 2 (at least for now)
144
- # patch_map.store("configure", DARWIN_CONFIGURE_PATCH) if ostype =~ /darwin/
154
+ patch_map.store("configure", DARWIN_CONFIGURE_PATCH) if ostype =~ /darwin/
145
155
 
146
156
  # ....................................................
147
157
  # autoload :OpenSSL, "openssl"
@@ -34,13 +34,10 @@ module Tebako
34
34
  module PatchLibraries
35
35
  class << self
36
36
  # rubocop:disable Style/WordArray
37
-
38
- # NOTE: folly provides build-in implementation of jemalloc
39
-
40
37
  DARWIN_BREW_LIBS = [
41
- ["zlib", "z"], ["gdbm", "gdbm"], ["readline", "readline"], ["libffi", "ffi"],
42
- ["ncurses", "ncurses"], ["fmt", "fmt"], ["lz4", "lz4"], ["xz", "lzma"],
43
- ["libyaml", "yaml"], ["boost", "boost_chrono"], ["double-conversion", "double-conversion"]
38
+ ["zlib", "z"], ["gdbm", "gdbm"], ["readline", "readline"], ["libffi", "ffi"],
39
+ ["ncurses", "ncurses"], ["fmt", "fmt"], ["lz4", "lz4"], ["xz", "lzma"],
40
+ ["libyaml", "yaml"], ["boost", "boost_chrono"], ["double-conversion", "double-conversion"]
44
41
  ].freeze
45
42
 
46
43
  DARWIN_BREW_LIBS_PRE_31 = [["openssl@1.1", "ssl"], ["openssl@1.1", "crypto"]].freeze
@@ -26,5 +26,5 @@
26
26
  # POSSIBILITY OF SUCH DAMAGE.
27
27
 
28
28
  module Tebako
29
- VERSION = "0.8.0"
29
+ VERSION = "0.8.1"
30
30
  end
data/version.txt CHANGED
@@ -1 +1 @@
1
- 0.8.0
1
+ 0.8.1
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tebako
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-07-27 00:00:00.000000000 Z
11
+ date: 2024-08-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -115,7 +115,7 @@ licenses:
115
115
  metadata:
116
116
  homepage_uri: https://github.com/tamatebako/tebako
117
117
  source_code_uri: https://github.com/tamatebako/tebako
118
- post_install_message:
118
+ post_install_message:
119
119
  rdoc_options: []
120
120
  require_paths:
121
121
  - cmake
@@ -139,8 +139,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
139
  - !ruby/object:Gem::Version
140
140
  version: '0'
141
141
  requirements: []
142
- rubygems_version: 3.5.11
143
- signing_key:
142
+ rubygems_version: 3.3.27
143
+ signing_key:
144
144
  specification_version: 4
145
145
  summary: Packager for Ruby executables
146
146
  test_files: []