Comments (8)
The pre-upload package seems to be in a good shape: http://debomatic-amd64.debian.net/distribution#experimental/highwayhash/0~20170419-g1f4a24f-1/buildlog
from highwayhash.
Interesting, the link text works but the tilde seems to have some encoding issue in the "href" (when clicked directly).
Looks like the build succeeded, thumbs up! I'm unfamiliar with debian packaging - can you briefly explain the implications and/or any changes you need for that?
from highwayhash.
I'll briefly explain how the current preliminary packaging works. And the final package to be uploaded may be different from the current one.
First let's take a look at the patch stack
-
the patch for adding install target is submitted as an PR, and the patch in PR is newer.
-
the another patch, somewhat gross, is for building a shared object file (statically-linked files are not always good for distributions), and to remove those machine specific objects (We need portable files in the package. sip_tree_hash.o requires AVX2, such binary files would bring trouble to users whose CPU has no AVX2 feature, hence removed in that patch).
I didn't look into the code carefully, and there must be a better way instead of just dropping that object file.
from highwayhash.
@jan-wassenberg Some questions:
- Which architectures are officially supported? Are the
amd64 (aka. x86_64), arm64 (aka. aarch64), and ppc64el
?
The package is nearly ready to be uploaded, as said by a reviewer from the Debian community. (see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=860804#24 ). However it failed to build on all architectures other than amd64.
According to Makefile [1], it seems that the fix should be exporting HH_AARCH64
for arm64 and HH_POWER
for ppc64el when building the package on corresponding architectures.
-
is 32-bit platforms thoroughly dropped? e.g.
i386, armel, armhf
. (Although I know that linux distributions are gradually deprecatingi{3,4,5,6}86 architecture
) -
Which kind of ppc64 do you support?
ppc64 (big-endian)
orppc64el (little-endian)
?
Your answer will help me to make the package better. Thanks in advance. :-)
P.S. Many thanks to the package reviewer Adam Borowski !
[1] https://github.com/google/highwayhash/blob/master/Makefile#L1
from highwayhash.
The package was uploaded to Debian experimental. Closing this issue.
from highwayhash.
highwayhash fails to build on many architectures, I'll report this issue in detail soon.
from highwayhash.
@cdluminate , thank you for explaining! Also great discussion in the debian thread, thanks for linking. It makes sense to remove/not distribute sip_tree_hash, that's superceded by HighwayHash anyway.
Which architectures are officially supported? Are the amd64 (aka. x86_64), arm64 (aka. aarch64), and ppc64el ?
Yes. FYI I am quite unfamiliar with the latter two archs, and can only confirm that example and highwayhash_test compile and run on those platforms given the config here.
is 32-bit platforms thoroughly dropped?
We can't build 32-bit anymore without some workarounds, but I am willing to incorporate patches if anyone needs 32-bit. In particular, _mm_cvtsi64_si128 is x64-only. Some of those (especially in Rotate32By) can be replaced with _mm_cvtsi32_si128, or perhaps _mm_cvtsi64x_si128 is available.
Which kind of ppc64 do you support?
After a patch from IBM, sip_hash seems to work fine on BE as well, but the others were only verified on LE. I'd be happy to incorporate further patches but have only tested on LE.
highwayhash fails to build on many architectures, I'll report this issue in detail soon.
Please do. I imagine os_specific raises #error "Port"
, anything else?
from highwayhash.
All build logs can be found in this page: https://buildd.debian.org/status/package.php?p=highwayhash&suite=experimental (click Build-attempted to view the buildlog, if you feel confused where it is)
A brief overview:
amd64: ok
arm64: ok, just needs a symbols update
ppc64el: ok, just needs a symbols update
ppc64: built but Mismatch at size 2
, need the patch from IBM
x32: built but Mismatch at size 1
#error "Port"
: mips, mips64el, mipsel, armel, armhf, i386, s390x, alpha, hppa, m68k, powerpc, sparc64, kfreebsd-amd64, kfreebsd-i386
from highwayhash.
Related Issues (20)
- Unexpected low speeds with the generic C?! HOT 2
- New Nodejs bindings package HOT 2
- highwayhash-wasm - WASM JS binding for the browser and nodejs HOT 3
- Alignment attributes are in the wrong place for arrays HOT 1
- Build fails (gcc (Ubuntu 12.2.0-3ubuntu1) 12.2.0) HOT 6
- Small bug in documentation (?) HOT 1
- Question: When the README says "an expected 2^32 guesses of m per the birthday paradox", does it refers to 128 and 256-bits versions too? HOT 3
- Alignment warning when compiling with GCC7 on aarch64 HOT 2
- Issues with Core 2 Duo HOT 1
- [Partial implementation] NEON version HOT 1
- Question: SSSE3 HOT 3
- doc: wikipedia article has been deleted HOT 1
- Failed to build on arm64 HOT 1
- Please strip the installed library HOT 1
- SipHash performs badly on short msgs (< 100 bytes). And missing le64toh swap on key? HOT 4
- Installs an unstripped binary lib/libhighwayhash.so HOT 3
- Builds static library with relocatable code (-fPIC) HOT 3
- Problem with Python 3 bindings HOT 5
- Test fails with gcc 10.2.0 HOT 3
- The tricky __SSE4_1__ macro under Visual Studio HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from highwayhash.