FPLLL Installation, Compilation, Dependencies

Martin R. Albrecht 2017/07/06

Outline

Build

Dependencies

Build

TL;DR

1. ./autogen.sh (when building from Git) 2. ./configure (optional: --prefix=$PREFIX) 3. make (optional: -jX for X cores) 4. make check 5. make install Note If you used a prefix, you might need to use $ LD_LIBRARY_PATH=$PREFIX/lib fplll …

Autotools

aclocal

aclocal.m4 autoconf

configure

automake

Makefile.in

Makefile.am

configure.ac autoheader

config.h.in

config.h config.status Makefile

make

executable

Autotools: ./autogen.sh

aclocal

aclocal.m4

autoheader

config.h.in

autoconf

configure

automake

Makefile.in

configure.ac

Makefile.am

Calling ./autogen.sh

Autotools: continued

config.h.in config.h Makefile.in

config.status Makefile

make

executable configure

Calling ./configure && make

See also

https://autotools.io/index.html

Files: configure.ac

• configuration options • finding dependencies and their flags • version numbers

Versions

There are two version numbers attached to each fplll release: 1. human-readable version number AC_INIT(fplll, 5.1.0) FPLLL_MAJOR_VERSION=`echo AC_PACKAGE_VERSION | awk -F. '{print $1}'` FPLLL_MINOR_VERSION=`echo AC_PACKAGE_VERSION | awk -F. '{print $2}'` FPLLL_MICRO_VERSION=`echo AC_PACKAGE_VERSION | awk -F. '{print $3}'` FPLLL_VERSION=… FPLLL_VERSION_NUMBER=…

2. Application binary interface (ABI) version number1 FPLLL_LT_CURRENT=3 FPLLL_LT_REVISION=0 FPLLL_LT_AGE=0

1

This will produce a file libfplll.so.3.0.0

ABI Version Number

The version of the libtool library is of the form current:revision:age2 When doing a release, they should be updated like this: 1. If no interfaces changed, only implementations: just increment revision. 2. If interfaces were added, none removed: increment current, set revision to zero and increment age. 3. If interfaces were removed (breaks backward compatibility): increment current, and set both revision and age to zero.

2

http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html

Files: Makefile.am

• which files belongs to which binary • what files to install in addition to binaries • one Makefile.am per directory

Debugging

1. CXXFLAGS="-O0 -ggdb -DDEBUG" ./configure 2. make V=1 (V=1 gives more detailed outputs) 3. make check 4. make install (our tests use the installed libfplll Note You can also use ./configure --disable-silent-rules to enable more verbose output when building by default.

Faster Builds

By default, libtool builds everything twice, one for the static and one for the dynamic library.3 If you want to avoid this double compiling time you can run ./configure --disable-static which disables building the static library.

3

https://stackoverflow.com/questions/572760/libtool-slowness-double-building

Prefixes i

It is highly recommended that you do not install fplll into your standard path • It will break, leaving you without a working fplll • Comparing your code with the released code will be useful for debugging • You may want to compile with debugging flags and without optimisations

Prefixes ii

I use Python virtual environments. 1. Creating a new virtual environment virtualenv env

2. Using a virtual environment4 source ./env/bin/activate export PKG_CONFIG_PATH="$VIRTUAL_ENV/lib/pkgconfig:$PKG_CONFIG_PATH" export LD_LIBRARY_PATH="$VIRTUAL_ENV/lib" ./configure --prefix="$VIRTUAL_ENV"

4

See https://github.com/fplll/fpylll for how to add the exports to activate

Adding a new file

• add filename to e.g. libfplll_la_SOURCES in fplll/Makefile.am • add header filename to nobase_include_fplll_HEADERS in fplll/Makefile.am • add test filename to tests/Makefile.am

Dependencies

GMP

https://gmplib.org

• used for arbitrary precision integers • fplll will refuse to compile without it • used by default, but you can also use machine integers5

5

No idea what difference that makes in terms of performance.

MPFR

http://www.mpfr.org

• used for arbitrary precision floating-point numbers • fplll will refuse to compile without it • default is native double precision • rule of thumb: if you have to use MPFR, you’re dead performance-wise

JSON

https://github.com/nlohmann/json

• used to read BKZ strategies • included in fplll • could be utilised more for log files etc.

Optional: QD

http://crd-legacy.lbl.gov/~dhbailey/mpdist/

• used for higher precision floating-point numbers • fplll will compile without it • contains double double and quad double type • it seems quad double is not faster than MPFR 6

6

https://github.com/fplll/fplll/issues/77

Fin

Thank You

FPLLL - Installation, Compilation, Dependencies - GitHub

Jul 6, 2017 - 2. ./configure (optional: --prefix=$PREFIX). 3. make (optional: -jX for X ... .gnu.org/software/libtool/manual/html_node/Updating-version-info.html ...

131KB Sizes 10 Downloads 360 Views

Recommend Documents

Cascading Dependencies - GitHub
An upstream change initiates a cascade of automated validation of all downstream dependent code. Developer commits change to source control. 1. Build trigger notices SCM change and triggers build execution 2. Build trigger notices upstream dependency

JETSCAPE Framework: Installation, Compilation And ...
Windows: Windows is currently not supported. We recommend you install a virtual machine https://www.storagecraft.com/blog/the-dead-simple-guide-to-installing-a-linux-virtual-machine-on-windows and a recent version of Scientific Linux. Then follow the

About the GSO-module in fplll - GitHub
Jul 6, 2017 - The GSO-module. Possible improvements. Summary. Questions. Givens rotations. Givens rotations. A Givens rotation G = G(i,j,θ) has rows: Gk =.. ek if k = i,j cei − sej if k = i sei + cej if k = j where c2 + s2 = 1. Note that b ↦→

Installation Guide - GitHub
Create the database tables. 3.2.5. (Optional) ... hedgehog Data Manager This is the user that will own the database created by. Hedgehog .... link on Homepage.

installation manual - GitHub
May 8, 2014 - 2. MEGAlib download: It will check if MEGAlib is present. If not it will ..... the source code through the following html file: doc/html/index.html. 9.

Greenplum Chorus 2.0 Installation Guide - GitHub
Dec 10, 2012 - Use, copying, and distribution of any EMC software described in this publication requires an applicable software .... management systems, database administration, and structured query language (SQL). ... questions about your account. .

Geoportal Server 1.2.4 Installation Guide - GitHub
Jul 1, 2013 - With simple authentication, there is only one user in the geoportal – the administrator. This ... Highlight the service representing your Directory Server. ... On the Network Parameter screen, enter the following parameters: ..... Gla

Digests Compilation
technology (e.g. Sociology) or (3) a creator of business value derived from technological and social structures of the new web (e.g. Business Administration). From the perspective of the authors of this paper, Web 2.0 is a natural evolution of the we

Installation of RHEL/CentOS/ 6 updates for Servers ... - GitHub
[root@localhost /]# yum groupupdate "Development Tools". [root@localhost /]# yum ... Download the package, which will be in tar.gz format. [root@localhost /]# tar ...... Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.10-114.el6] smb: \> ls ...

Geoportal Server 1.2.2 Installation Guide for WebLogic - GitHub
After you've obtained the .jar file, you will need to copy it to your WebLogic deployment and add it to the WebLogic domain classpath, following the steps below:.

Geoportal Server 1.2.2 Installation Guide For Linux - GitHub
grants_linuxpg.sh [host] [port] [database] [geoportal schema] [postgresUser]. [geoportal ... [geoportal server] is the name of the geoportal web application server.

Digests Compilation
annotate the content and express implicit relations among wiki concepts. This aids users to gradually ... typed links, concept types and properties. In addition, it ...

compilation asa akira.pdf
cumpilation. Spankwire. asa akira compilation. Asa akira anal crazyjizz.comfree porn videos. Asa akira compilation,. free asian porn video 3c xhamster. Asa akira compilation. pornhub.com. Youporn compilation videos xxx, free porn movies. Asa akira ho

Framing Dependencies Introduced by Underground ... - UCSD CSE
Over the last two decades, attacks on computer systems ... extractable value: both through its commodity technical re- sources (e.g., its .... In turn, the victim. 3 ...

Framing Dependencies Introduced by Underground ... - Damon McCoy
International Computer Science Institute .... and ever increasing degrees of specialization. ..... variants that can be cleaned up by purchasing a one-year sub-.

Secure Dependencies with Dynamic Level ... - Semantic Scholar
evolve due to declassi cation and subject current level ... object classi cation and the subject current level. We ...... in Computer Science, Amsterdam, The Nether-.

Generalized File System Dependencies - SOSP 2007
Oct 14, 2007 - A patch represents both a change to disk data and any dependen- ... Permission to make digital or hard copies of all or part of this work for.

Richer Syntactic Dependencies for Structured ... - Microsoft Research
equivalent with a context-free production of the type. Z →Y1 ...Yn , where Z, Y1,. .... line 3-gram model, for a wide range of values of the inter- polation weight. We note that ... Conference on Empirical Methods in Natural Language. Processing ..

Framing Dependencies Introduced by Underground ... - Damon McCoy
and fragile homogeneous software systems provided fertile ground for the .... which primarily exist to support traditional crime using online distribution channels. [21] ... the spammer first requires a multitude of fake accounts to post messages.

Framing Dependencies Introduced by Underground ... - UCSD CSE
The practice of buying and selling synthetic engagement im- pacts any service reliant ...... Workshop on Artificial Intelligence and Security (AISEC), pages 11–20 ...

Program Modules, $eparate Compilation, and ...
agated to other modules and ( 2 ) no code is generated for module language ..... The specialisation of ModML functors is much similar to ho w Ada generic.

Open BEAGLE Compilation HOWTO
Oct 10, 2005 - This document is on the compilation of the Open BEAGLE1 C++ framework for evolutionary computations. ..... #define BEAGLE_FULL_DEBUG.

PublicAgent compilation tour video
Problemsolving pdf. ... video KingDuncan did die he had sonsand theywould take over the PublicAgentcompilation tour video ofScotland,and the Thane ...