Skip to content

Add CMake config to install headers, libraries, and binaries#2

Merged
andrewhop merged 1 commit into
aws:masterfrom
andrewhop:install
Jun 10, 2020
Merged

Add CMake config to install headers, libraries, and binaries#2
andrewhop merged 1 commit into
aws:masterfrom
andrewhop:install

Conversation

@andrewhop
Copy link
Copy Markdown
Contributor

Issue #, if available:
N/A
Description of changes:
This adds config to install AWS-LC in a common way. A follow up change could add the CMake targets to help consumers who use CMake FindPackage.

$ ls
aws-lc  build  install

$ cmake aws-lc -Bbuild -GNinja -DCMAKE_INSTALL_PREFIX=install
...

$ ninja -C build install
...

$ ls install/
bin  include  lib

$ ls install/bin/
bssl

$ ls install/include/
openssl

$ ls install/include/openssl/
aead.h      base.h      buffer.h      conf.h        digest.h  ecdh.h     hkdf.h          md5.h      opensslconf.h  pkcs8.h     rsa.h        ssl.h          type_check.h
aes.h       base64.h    bytestring.h  cpu.h         dsa.h     ecdsa.h    hmac.h          mem.h      opensslv.h     poly1305.h  safestack.h  ssl3.h         x509.h
arm_arch.h  bio.h       cast.h        crypto.h      dtls1.h   engine.h   hrss.h          nid.h      ossl_typ.h     pool.h      sha.h        stack.h        x509_vfy.h
asn1.h      blowfish.h  chacha.h      curve25519.h  e_os2.h   err.h      is_boringssl.h  obj.h      pem.h          rand.h      siphash.h    thread.h       x509v3.h
asn1_mac.h  bn.h        cipher.h      des.h         ec.h      evp.h      lhash.h         obj_mac.h  pkcs12.h       rc4.h       span.h       tls1.h
asn1t.h     buf.h       cmac.h        dh.h          ec_key.h  ex_data.h  md4.h           objects.h  pkcs7.h        ripemd.h    srtp.h       trust_token.h

$ ls install/lib/
libcrypto.a  libssl.a

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@andrewhop andrewhop merged commit 76d8cfd into aws:master Jun 10, 2020
dkostic pushed a commit to dkostic/aws-lc that referenced this pull request Dec 5, 2024
This allows for more general shifted operands where applicable, e.g.
"add x0, x1, x2, lsr aws#2" or "and x4, x5, x6, asr aws#63". At the
shallow embedding level we add the construct "Shiftedreg", and
the decoder maps appropriate instructions to it. This commit also
fixes a few trivial errors and eliminates some lemmas duplicating
those in the HOL Light standard library.
kingstjo added a commit to kingstjo/aws-lc that referenced this pull request Apr 18, 2025
Test aws#2 EC2 Self hosted runner
R3hankhan123 pushed a commit to R3hankhan123/aws-lc that referenced this pull request Aug 29, 2025
R3hankhan123 pushed a commit to R3hankhan123/aws-lc that referenced this pull request Aug 29, 2025
Co-authored-by: Sean McGrail <549813+skmcgrail@users.noreply.github.com>
jakemas pushed a commit that referenced this pull request Jan 15, 2026
* Adding CODEOWNERS
* Adding AWS-LC repo as submodule.
justsmth added a commit that referenced this pull request Feb 24, 2026
…3029)

### Issues:
Addresses #3028 

### Description of changes:
When GCC 15 compiles the FIPS module at `-O3` on aarch64, it emits
`fmov` instructions with floating-point immediates (e.g. `fmov v8.4s,
#2.0e+0`). The delocator's PEG grammar only supports integer immediates,
so it parses `#2.0e+0` as the integer `#2` followed by what it thinks is
a symbol reference `.0e`. This gets turned into a redirector
(`.Lbcm_redirector_.0e`), producing invalid assembly.

This change fixes the issue in two ways:
- **Grammar fix**: Adds a floating-point immediate alternative to the
`RegisterOrConstant` rule in `delocate.peg`, so values like `#2.0e+0`
are parsed as a single token.
- **Pass-through**: Adds `fmov` to the special-case instruction list in
`processAarch64Instruction()`. Since `fmov` only operates on registers
and immediates (never memory), it never needs delocating and can safely
be written through unchanged.

The GCC 15 + FIPS exclusion in `arm-gcc-tests` CI is also removed now
that the underlying issue is resolved.

### Call-outs:
The `delocate.peg.go` file is regenerated from the grammar using the
`peg` tool. The grammar change is the one line in `delocate.peg`; the
rest of that file is mechanical.

### Testing:
- Added 6 test cases to `testdata/aarch64-Basic/in.s` covering float
immediates with exponent notation, simple decimals, negative values,
fractional values, scalar forms, and register-to-register `fmov`.
- All 19 existing delocator tests continue to pass.
- Re-enabled the `arm-gcc-tests` CI matrix entry for GCC 15 + FIPS on
arm64 which will validate the end-to-end build.

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and the ISC license.
justsmth added a commit that referenced this pull request May 15, 2026
…immediates on aarch64 (#3255)

When GCC 15 compiles the FIPS module at `-O3` on aarch64, it emits
`fmov` instructions with floating-point immediates (e.g. `fmov v8.4s, so
it parses `#2.0e+0` as the integer `#2` followed by what it thinks is a
symbol reference `.0e`. This gets turned into a redirector
(`.Lbcm_redirector_.0e`), producing invalid assembly.

This change fixes the issue in two ways:
- **Grammar fix**: Adds a floating-point immediate alternative to the
`RegisterOrConstant` rule in `delocate.peg`, so values like `#2.0e+0`
are parsed as a single token.
- **Pass-through**: Adds `fmov` to the special-case instruction list in
`processAarch64Instruction()`. Since `fmov` only operates on registers
and immediates (never memory), it never needs delocating and can safely
be written through unchanged.

The GCC 15 + FIPS exclusion in `arm-gcc-tests` CI is also removed now
that the underlying issue is resolved.

The `delocate.peg.go` file is regenerated from the grammar using the
`peg` tool. The grammar change is the one line in `delocate.peg`; the
rest of that file is mechanical.

- Added 6 test cases to `testdata/aarch64-Basic/in.s` covering float
immediates with exponent notation, simple decimals, negative values,
fractional values, scalar forms, and register-to-register `fmov`.
- All 19 existing delocator tests continue to pass.
- Re-enabled the `arm-gcc-tests` CI matrix entry for GCC 15 + FIPS on
arm64 which will validate the end-to-end build.

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 license and the ISC license.

(cherry picked from commit 7b2a86c)

Co-authored-by: Justin W Smith <103147162+justsmth@users.noreply.github.com>
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