tebako 0.8.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
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: []