Skip to content

Commit 0da3c3a

Browse files
authored
Merge pull request #139 from TheBlueMatt/main
Get things building again
2 parents ba6ce25 + 8ad2307 commit 0da3c3a

File tree

5 files changed

+48
-6
lines changed

5 files changed

+48
-6
lines changed

deterministic-build-wrappers/compiler-builtins-dummy/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ gimli = "=0.25.0"
99
object = "=0.26.2"
1010
addr2line = "=0.16.0"
1111
miniz_oxide = "=0.4.4"
12+
unicode_width = "=0.2.1"

deterministic-build-wrappers/rustc

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,15 @@
88
args=("$@")
99
IS_LIGHTNING=false
1010
SKIP_EMBED_BITCODE=false
11+
MAY_NEED_COMPILER_BUILTINS=false
12+
DEP_PATH=""
1113
for ((i=0; i<"${#args[@]}"; ++i)); do
1214
case ${args[i]} in
1315
--crate-name)
1416
if [ "${args[i+1]}" = "lightning" -o "${args[i+1]}" = "lightning_types" -o "${args[i+1]}" = "lightning_background_processor" -o "${args[i+1]}" = "lightning_invoice" -o "${args[i+1]}" = "lightning_persister" -o "${args[i+1]}" = "lightning_rapid_gossip_sync" -o "${args[i+1]}" = "lightning_liquidity" -o "${args[i+1]}" = "lightning_transaction_sync" -o "${args[i+1]}" = "ldk" ]; then
1517
IS_LIGHTNING=true
18+
elif [ "${args[i+1]}" = "memchr" -o "${args[i+1]}" = "rustc_demangle" -o "${args[i+1]}" = "unwind" ]; then
19+
MAY_NEED_COMPILER_BUILTINS=true
1620
fi
1721
;;
1822
--crate-type)
@@ -22,6 +26,10 @@ for ((i=0; i<"${#args[@]}"; ++i)); do
2226
SKIP_EMBED_BITCODE=true
2327
fi
2428
;;
29+
--extern)
30+
IFS="=" PAIR=(${args[i+1]})
31+
DEP_PATH="$(dirname ${PAIR[1]})"
32+
;;
2533
esac
2634
done
2735
for ((i=0; i<"${#args[@]}"; ++i)); do
@@ -44,4 +52,29 @@ for ((i=0; i<"${#args[@]}"; ++i)); do
4452
;;
4553
esac
4654
done
47-
$LDK_RUSTC_PATH "${args[@]}"
55+
56+
# For some reason, sometimes when building with build-std cargo forgets to give crates a path to
57+
# their `compiler_builtin` dependencies. This obviously shouldn't happen but we fix it here.
58+
EXTRA_ARGS=()
59+
if [ "$MAY_NEED_COMPILER_BUILTINS" = "true" ]; then
60+
if [ -z "$DEP_PATH" ]; then
61+
echo "WARNING: Need at least one other dependency to know where to look, build may to fail if cargo is buggy" > /dev/stderr
62+
else
63+
COUNT=0
64+
CB_PATH="$(echo "$DEP_PATH"/libcompiler_builtins-*.rmeta)"
65+
while [ ! -f "$CB_PATH" ]; do
66+
# Wait until compiler_builtins finishes building...
67+
sleep 1
68+
COUNT="$(( $COUNT + 1 ))"
69+
if [ "$COUNT" -gt 120 ]; then
70+
echo "Took too long to get compiler_builtins built" > /dev/stderr
71+
exit 1
72+
fi
73+
CB_PATH="$(echo "$DEP_PATH"/libcompiler_builtins-*.rmeta)"
74+
done
75+
sleep 1
76+
EXTRA_ARGS=("--extern" compiler_builtins="$CB_PATH")
77+
fi
78+
fi
79+
80+
$LDK_RUSTC_PATH "${args[@]}" "${EXTRA_ARGS[@]}"

lightning-c-bindings/demo.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -564,7 +564,7 @@ int main() {
564564
LDKThirtyTwoBytes chain_tip;
565565
memset(&chain_tip, 0, sizeof(chain_tip)); // channel_open_header's prev_blockhash is all-0s
566566

567-
LDKNetwork network = LDKNetwork_Testnet;
567+
LDKNetwork network = LDKNetwork_Testnet3;
568568

569569
// Trait implementations:
570570
LDKBroadcasterInterface broadcast {

lightning-c-bindings/include/lightning.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -794,7 +794,11 @@ typedef enum LDKNetwork {
794794
/**
795795
* The testnet3 blockchain.
796796
*/
797-
LDKNetwork_Testnet,
797+
LDKNetwork_Testnet3,
798+
/**
799+
* The testnet4 blockchain.
800+
*/
801+
LDKNetwork_Testnet4,
798802
/**
799803
* A local test blockchain.
800804
*/

lightning-c-bindings/src/bitcoin/network.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ pub enum Network {
88
/// The main Bitcoin blockchain.
99
Bitcoin,
1010
/// The testnet3 blockchain.
11-
Testnet,
11+
Testnet3,
12+
/// The testnet4 blockchain.
13+
Testnet4,
1214
/// A local test blockchain.
1315
Regtest,
1416
/// A blockchain on which blocks are signed instead of mined.
@@ -19,15 +21,17 @@ impl Network {
1921
pub(crate) fn into_bitcoin(&self) -> BitcoinNetwork {
2022
match self {
2123
Network::Bitcoin => BitcoinNetwork::Bitcoin,
22-
Network::Testnet => BitcoinNetwork::Testnet,
24+
Network::Testnet3 => BitcoinNetwork::Testnet,
25+
Network::Testnet4 => BitcoinNetwork::Testnet4,
2326
Network::Regtest => BitcoinNetwork::Regtest,
2427
Network::Signet => BitcoinNetwork::Signet,
2528
}
2629
}
2730
pub(crate) fn from_bitcoin(net: &BitcoinNetwork) -> Self {
2831
match net {
2932
BitcoinNetwork::Bitcoin => Network::Bitcoin,
30-
BitcoinNetwork::Testnet => Network::Testnet,
33+
BitcoinNetwork::Testnet => Network::Testnet3,
34+
BitcoinNetwork::Testnet4 => Network::Testnet4,
3135
BitcoinNetwork::Regtest => Network::Regtest,
3236
BitcoinNetwork::Signet => Network::Signet,
3337
_ => unreachable!(),

0 commit comments

Comments
 (0)