libyal / libfvde

Library and tools to access FileVault Drive Encryption (FVDE) encrypted volumes
GNU Lesser General Public License v3.0
339 stars 34 forks source link

Unable to build libfvde on Mac OS 10.14 #48

Closed therightprofile closed 2 years ago

therightprofile commented 4 years ago

I am unable to build any of the source distribution packages (20190104, 20191221) as well as with git clone on macos 10.14.

It seems to be related to the libcaes library.

Here's the error I get on make:

libcaes_context.c:365:6: error: use of undeclared identifier 'libcaes_tables_initialized'; did you mean
      'libcaes_context_initialize'?
        if( libcaes_tables_initialized == 0 )
libcaes_context.c:379:3: error: use of undeclared identifier 'libcaes_tables_initialized'
                libcaes_tables_initialized = 1;
joachimmetz commented 4 years ago

Can you attach your config.log. The CI builds seems fine, so I expect this to be something specific to your build environment.

joachimmetz commented 4 years ago

I just built 20191221 on MacOS 10.14 on a clean installation with XCode without any issues. As I indicated please provide your config.log I suspect this is something specific to your installation.

therightprofile commented 4 years ago

Here's my config.log

config.log

Thanks!

joachimmetz commented 4 years ago

Finally had some time for a brief look:

ax_libcrypto_pc_libs_private=''
ax_libcrypto_spec_build_requires=''
ax_libcrypto_spec_requires=''
...
openssl_CFLAGS=''
openssl_LIBS=''
Building:
   libcerror support:                         local
   libcthreads support:                       local
   libcdata support:                          local
   libclocale support:                        local
   libcnotify support:                        local
   libcsplit support:                         local
   libuna support:                            local
   libcfile support:                          local
   libcpath support:                          local
   libbfio support:                           local
   libfcache support:                         local
   libfdata support:                          local
   libfguid support:                          local
   libfplist support:                         local
   libfvalue support:                         local
   DEFLATE compression support:               local
   libhmac support:                           local
   SHA256 support:                            local
   libcaes support:                           local
   AES-ECB support:                           local
   AES-XTS support:                           local
   FUSE support:                              libosxfuse

Features:
   Multi-threading support:                   pthread
   Wide character type support:               no
   fvdetools are build as static executables: no
   Python (pyfvde) support:                   no
   Verbose output:                            no
   Debug output:                              no

This corresponds roughly with my test.

libcaes_tables_initialized not being defined here https://github.com/libyal/libcaes/blob/20190102/libcaes/libcaes_context.c#L365 could be because LIBCAES_HAVE_AES_SUPPORT is defined (https://github.com/libyal/libcaes/blob/20190102/libcaes/libcaes_definitions.h.in#L54). I'll have a look what could trigger this. I'd also noticed that you have a lot of PATHs

joachimmetz commented 4 years ago

I only see HAVE_OPENSSL_EVP_H defined in config.log

HAVE_OPENSSL_EVP_H=''

Though on my test machine this is HAVE_OPENSSL_EVP_H='0' so this seems very comparable.

joachimmetz commented 4 years ago

Though I see your config.log is from 20190104. I retried with 20190104, no difference for me, source builds as expected.

joachimmetz commented 4 years ago

I see you are using ./configure --disable-shared-libs maybe that is causing the issue. I cannot reproduce the issue with the --disable-shared-libs option either

joachimmetz commented 2 years ago

libcaes has been updated in the mean time, try again with the latest. Closing this issue for now, since it was not reproducible.