Skip to content

Try catch test#3

Open
anprdev wants to merge 2590 commits intonashsclay:masterfrom
PRCYCoin:try-catch-test
Open

Try catch test#3
anprdev wants to merge 2590 commits intonashsclay:masterfrom
PRCYCoin:try-catch-test

Conversation

@anprdev
Copy link

@anprdev anprdev commented Jul 11, 2023

No description provided.

lyricidal added 30 commits April 3, 2023 16:30
[Upstream] build: Use Link Time Optimization for Qt code on Linux
[Upstream] depends: expat 2.4.8 & fix building with -flto
[Upstream] depends: default to using GCC tool wrappers for LTO (with GCC)
also adjust configure options to fix compile
depends: Fix file permission for gen_id
- Clearer and more accurate prose
- Pin `guix pull' to commit rather than branch
- Just use `use-module' instead of `define-module'
- Use `bash-minimal' instead of `bash'
- Remove unneeded `tcsh' from manifest
- Explicitly use `python-3.7'
- Add comments about how {native,cross}-toolchains are produced and
  why
[Upstream] contrib: Enable building in Guix containers
- store_path() previously only worked for cross compilation packages, we
  remove this assumption here
- Add CROSS_GCC_LIB variable which points to where gcc libs/headers are
  located
- Add gcc libs/headers to our CROSS_*_PATH environment variables
- Check that all directories in CROSS_*_PATH are sane
This hack is no longer needed after fixing our cross-compilation search
paths.
Wait a minute, doc. Are you telling me you built a time machine... Out
of a functional package manager?
[Upstream] guix: Remove ssp spec file hack
[Upstream] guix: Pin Guix using guix time-machine
Previously, Guix would produce a gcc which did not know to use the SSP
function from glibc, and required a gcc make flag for it to do so, in my
attempt to fix it upstream I realized that this is no longer the case.

This can be verified by performing a Guix build and doing

  readelf -s ... | grep __stack_chk

to check that symbols are coming from glibc, and doing

  readelf -d ... | grep NEEDED | grep ssp

to see that libssp.so is not being depended on
[Upstream] build: Skip i686 build by default in guix and gitian
[Upstream] guix: Remove now-unnecessary gcc make flag
- Add "--no-insert-timestamp" LDFLAG for x86_64-w64-mingw32 builds

"The option --no-insert-timestamp can be used to insert a zero value for
the timestamp, this ensuring that binaries produced from identical
sources will compare identically." - ld(1)

- Set "SetDateSave off" in NSIS script

From https://nsis.sourceforge.io/Docs/Chapter4.html#flags

"This command sets the file date/time saving flag which is used by the
File command to determine whether or not to save the last write date and
time of the file, so that it can be restored on installation. Valid
flags are 'on' and 'off'. 'on' is the default."

- Add commented out NSIS options for reproducibility debugging in NSIS
  script

- Make ZIPs deterministic by reseting file modification times to
  SOURCE_DATE_EPOCH using touch(1) (Reference:
  https://reproducible-builds.org/docs/archives/)
We're using mingw-w64 6.0.0, which is paired with gcc-8 in most distros.
This bump will includes a couple of commits which improve the
reproducibility of the mingw-w64 toolchain. Most of which came from
debian. They will be upstreamed as upstream Guix release timeline
allows.
lyricidal added 20 commits July 10, 2023 16:55
[Upstream] Trivial: tiny c++11 refactors
This addresses issues like the one in bitcoin/bitcoin#12467, where some of our compiler flags
end up being dropped during the subconfigure of Univalue. Specifically, we're
still using the compiler-default c++ version rather than forcing c++17.

We can drop the need subconfigure completely in favor of a tighter build
integration, where the sources are listed separately from the build recipes,
so that they may be included directly by upstream projects. This is
similar to the way leveldb build integration works in Core.

Core benefits of this approach include:
- Better caching (for ex. ccache and autoconf)
- No need for a slow subconfigure
- Faster autoconf
- No more missing compile flags
- Compile only the objects needed

There are no benefits to Univalue itself that I can think of. These changes
should be a no-op there, and to downstreams as well until they take advantage
of the new sources.mk.

This also removes the option to use an external univalue to avoid similar ABI
issues with mystery binaries.
Remove all the files we don't use.
This should not change behavior, or anything at all, as none of these
files are currently used in our build system.
-BEGIN VERIFY SCRIPT-
 sed -i 's|\<get_int64\>|getInt<int64_t>|g' $(git grep -l get_int ':(exclude)src/univalue')
 sed -i 's|\<get_int\>|getInt<int>|g'       $(git grep -l get_int ':(exclude)src/univalue')
-END VERIFY SCRIPT-
-BEGIN VERIFY SCRIPT-
git grep -l "push_back(Pair" | xargs sed -i "s/push_back(Pair(\(.*\)));/pushKV(\1);/g"
-END VERIFY SCRIPT-
(Set CLIENT_VERSION_IS_RELEASE = false)
This removes a "race" between Interrupt() and Run(), though it
should not effect any of our supported platforms.
This removes a "race" between Interrupt() and Run(), though it
should not effect any of our supported platforms.
[Upstream] Access WorkQueue::running only within the cs lock
@anprdev
Copy link
Author

anprdev commented Jul 11, 2023

Error fetch in Listtransaction

This prevents a potential race condition if control flow ends up in
`ShutdownHTTPServer` before the thread gets to `queue->Run()`,
deleting the work queue while workers are still going to use it.

Meant to fix bitcoin/bitcoin#12362.
This function, which waits for all threads to exit, is no longer needed
now that threads are joined instead.
The HTTP worker thread counter, as well as the RAII object that was used
to maintain it, is unused now, so can be removed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants