Commit Graph

157 Commits

Author SHA1 Message Date
Martijn van Beurden
68d01aaea5 Add checking for pthread to configure 2023-09-22 21:10:15 +02:00
Martijn van Beurden
28e4f0528c
Release FLAC 1.4.3 2023-06-23 09:17:08 +02:00
Martijn van Beurden
e00d9b881f
Update copyright year and maintainer status 2023-06-06 22:08:24 +02:00
Martijn van Beurden
0b8a271b3e
Fix version number display on Windows
This adds windows-specific version information to build objects

Co-authored-by: Ozkan Sezer <sezeroz@gmail.com>
2023-05-24 14:52:13 +02:00
Martijn van Beurden
43bc8101ce Switch default bitreader/bitwriter word size to 64-bit 2023-03-27 22:10:00 +02:00
Martijn van Beurden
771eb050e7 Add tests for foreign metadata handling 2023-02-17 11:06:46 +01:00
Martijn van Beurden
ba5172e554
Remove all PPC-specific code (and a mention of SPARC)
As it turns out that the PPC-specific code provides no benefit with
modern, autovectorizing compilers, and given that there is a lot of
cruft surrounding the PPC-specific parts, remove all of it.

See also https://lists.xiph.org/pipermail/flac-dev/2022-December/006620.html
2023-01-27 19:02:36 +01:00
Martijn van Beurden
0a52c6fd5c
Replace own bool with stdbool.h, check for header being available 2023-01-07 09:58:00 +01:00
Martijn van Beurden
eb5bac33f9
Only prepend default CFLAGS for GCC and Clang 2022-11-06 19:12:34 +01:00
Martijn van Beurden
b32e5cbf98
Release FLAC 1.4.2 2022-10-22 13:01:34 +02:00
Martijn van Beurden
e7b584eaf9
Remove default msse2 on x86, tidy up asm optimizations
Remove default addition of msse2 on x86. After profiling it was
found this helps little on modern systems. See
https://github.com/xiph/flac/issues/486

The mention of Asm optimizations at the end of configuration was
wrong in many ways: it was 'yes' on platforms for which there are
no optimizations, and wasn't set to 'no' in case intrinsics headers
aren't available.
2022-10-20 07:39:18 +02:00
Ozkan Sezer
3426713ed9
fix --disable-stack-smash-protection mingw issues, add --disable-fortify-source
Co-authored-by: Martijn van Beurden <mvanb1@gmail.com>
2022-10-18 22:43:38 +02:00
Martijn van Beurden
ad9618c54d
Prepend to CFLAGS instead of only setting when blank 2022-10-18 07:16:16 +02:00
Martijn van Beurden
75ef7958df
Remove all assembler 2022-10-15 15:44:03 +02:00
Martijn van Beurden
06769de241 Compile libFLAC with associative floating-point math 2022-10-12 20:37:18 +02:00
Martijn van Beurden
8fbeff238c
Remove xmms plugin 2022-10-06 16:41:40 +02:00
Martijn van Beurden
2440e19a73 Fix out-of-tree building with prebuilt docs 2022-09-26 16:47:17 +02:00
Martijn van Beurden
e9551810c7 AC_CHECK_FILE -> simple test, doesn't fail when cross-compiling
This should fix https://github.com/xiph/flac/issues/463
2022-09-26 16:47:17 +02:00
Martijn van Beurden
b6fbd6b3d9
Release FLAC 1.4.1 2022-09-22 12:02:59 +02:00
Martijn van Beurden
b175971f80
Include api dir in distribution
Also, don't create empty Doxygen tag and api directory
2022-09-18 20:09:48 +02:00
Martijn van Beurden
71c3c55dba
Do not make empty man pages, use either pandoc or prebuild (#440)
* Do not make empty man pages, use either pandoc or prebuild

A check is added to configure whether flac.1 and metaflac.1
are already build when pandoc is not available. This is the
case in for example dist packages

* Fix typo in new automake conditional
2022-09-18 10:11:47 +02:00
Martijn van Beurden
1cb364d8cf
Make sure git doesn't try to get version from other repository
Fixes https://github.com/xiph/flac/issues/443
2022-09-16 13:59:21 +02:00
Martijn van Beurden
1a84604b2b
Remove __MSVCRT_VERSION__=0x0601 from configure.ac
This does not seem to be necessary anymore, is not used in CMake
and inhibits building against UWP and UCRT with MinGW
2022-09-15 16:07:29 +02:00
Martijn van Beurden
2ab4677750
Release FLAC 1.4.0 2022-09-09 14:08:42 +02:00
Martijn van Beurden
dd8a264c56
Restructure README, API and HTML documentation
Tool documentation has moved to man directory, other dev docs to
README.md and CONTRIBUTING.md. User documentation is already on
the website and doesn't really belong in the source code. Also, fix CMake
so that it uses Doxyfile.in instead of using defaults.
2022-09-05 19:11:31 +02:00
Martijn van Beurden
010c60e1f9
Add configure option to not build programs 2022-08-13 15:20:42 +02:00
Martijn van Beurden
80d064e15d
Convert docbook to markdown
Currently, the man pages are converted from a docbook document, but
the conversion doesn't seem very reliable. Also, the man page is
more-or-less duplicated by the html documentation.

This commit moves all tool documentation to a markdown document which
is readable by itself and can be converted by pandoc to a man page
and can be used by Jekyll to populate the website.
2022-08-09 21:26:19 +02:00
Martijn van Beurden
dd4a263406 Remove Makefile.lite build system 2022-05-27 21:59:32 +02:00
Fabrice Fontaine
6cd28e855c Fix uclibc build
Commit 4fbb6d4f2e reverted commit
44036c9a9b and so broke again the build on
uclibc

So put back the sys/auxv.h check as well as a getauxval check in a way
that doesn't break iOS

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2022-04-30 09:46:47 +02:00
RonenGvili
95e2c52980
Adding ARM64 support and optimized Neon implementation (#270)
Add NEON intrinsics routines for lpc_compute_residual_from_qlp_coefficients
and lpc_compute_residual_from_qlp_coefficients_wide
2022-04-29 14:46:07 +02:00
Martijn van Beurden
d15bcf80a0 Add check for certain POWER8/9 intrinsic in altivec.h to configure 2022-04-25 20:13:36 +02:00
Martijn van Beurden
f579b163fe
Add git commit tag, hash and date to vendor string when available
In some circles (Hydrogenaud.io for example) people share binaries
compiled from git, i.e. inbetween official releases. Files created
with these binaries cannot be discerned from others. To improve
troubleshooting, compiles from a git repository are marked with
the commit hash and date when configured with autotools or CMake
2022-04-20 21:47:07 +02:00
Martijn van Beurden
0f98b940f8 Update fuzzers
This changes the names of the two fuzzers so they align with
current oss-fuzz usage (to provide continuity in test data and
corpora) and adds a dictionary to the decoder fuzzer. It also
removes some unnecessary configuration, as it clashed with oss-fuzz
defaults
2022-04-20 11:10:08 +02:00
Martijn van Beurden
14eb65de34 Fix configuration of stack smash protection/fortify source on MinGW
Without this commit, building fails on MinGW because
-D_FORTIFY_SOURCE=2 needs runtime support which MinGW does not
provide. Building was possible with make LDFLAGS='-lssp'

This commit checks whether a symbol used by _D_FORTIFY_SOURCE=2 and
the stack smashing protector are available, and if so, enables these.
Resulting DLLs depend on the libssp DLL.
2022-04-15 09:36:15 +02:00
Martijn van Beurden
7dd7f94822 Fix building both static and shared libs on MinGW with autotools
When building both static and shared libs on MinGW with autotools,
the build broke down without any error message. This commit makes
such a build work
2022-04-15 09:36:15 +02:00
Martijn van Beurden
ecede0bc72 Remove AC_C_VARARRAYS from configure.ac
With autoconf 2.70, the behaviour of AC_C_VARARRAYS has changed,
causing a lot of warnings and as a result a cluttered make output.

Doing some research as to where this comes from, I found an strange
piece of code that seems to rely on a misunderstanding as to VLA's
in C++. As I found, the C++ standard does not have VLA's. The
configure.ac code and some code in libFLAC++ seems to think it does.
This now causes strange behaviour.

This commit removes the code relying on this behaviour and removing
all VLA related autoconf macro's from configure.ac
2022-04-15 09:36:15 +02:00
Martijn van Beurden
13149acddd Remove more obsolete autoconf macro's
Autoconf 2.71 warns about obsolete macro's on running ./autogen.sh.

AC_PROG_CC_STDC is replaced by AC_PROG_CC as recommended by autoupdate

AC_HEADER_STDC has been removed. Autoupdate recommended the following:
> The preprocessor macro `STDC_HEADERS' is obsolete. Except in unusual
> embedded environments, you can safely include all ISO C90 headers
> unconditionally.
2022-04-15 09:36:15 +02:00
Martijn van Beurden
d94a43d5c3 Update configure.ac and m4 files with autoupdate 2.60
Starting with autoconf 2.70, obsolescence warnings are output by
default. To keep the script as compatible as possible, I build
autoconf 2.60 and ran the autoupdate that came with it on
configure.ac and all m4 files.
2022-04-15 09:36:15 +02:00
Martijn van Beurden
e75495be3d
Change version to 1.3.4 and add placeholders for release date
Signed-off-by: Ralph Giles <giles@thaumas.net>
2022-02-20 20:54:19 -08:00
Thomas BERNARD
4fbb6d4f2e fix build under Mac OS X with PowerPC CPU
revert 44036c9a9b because auxv.h is only
available under Linux and FreeBSD.
2020-05-03 17:14:33 +10:00
NotTsunami
f706f28322 cmake/configure.ac: Enable -fstack-protector-strong by default
This commit contains the following changes:

- Drops -fstack-protector in favor of -fstack-protector-strong.
  Consequently, the ssp-buffer-size parameter has been removed as
  -fstack-protector-strong ignores array size.

- Add new global opt-out for stack smash protection. This is enabled
  by default for both autotools and CMake builds. Users can opt out
  of stack smash protection by passing -DWITH_STACK_PROTECTOR=OFF to
  CMake or --disable-stack-smash-protection when running ./configure.

- Renames HAVE_SSP_FLAG to HAVE_STACK_PROTECTOR_FLAG in
  CMakeLists.txt to be more readable.
2019-11-20 17:12:03 +11:00
Erik de Castro Lopo
e0f7e0ece5 oss-fuzz: Add fuzzing targets
These fuzzing targets were originally from:

    https://github.com/guidovranken/flac-fuzzers.git

but having them in a separate repo was a huge pain in the neck when
working on fixing any problems found.
2019-11-18 06:29:10 +11:00
sezero
d4a1b345dd configure.ac: allow several compiler flags for clang
The flac configury marked clang as 'not being gcc' and excluded
a lot of compiler switches, most importantly the visibility flags,
from being used with it. This was done possibly after a problem
reported at: https://github.com/erikd/libsndfile/issues/49 .

This patch does the following:

- m4/gcc_version.m4 (XIPH_GCC_VERSION): set GCC_MAJOR_VERSION and
  GCC_MINOR_VERSION to 0 for non-gcc. Previously, they were left
  unset.

- configure: the gcc version checks are, naturally, against non-
  zero values, so, allow many compiler switches to be used with
  clang without affecting real-gcc cases.

- configure: When setting CFLAGS="-O3 -funroll-loops", also set
  CXXFLAGS="-O3".  Prevents g++ warnings with _FORTIFY_SOURCE, i.e.:
 '_FORTIFY_SOURCE requires compiling with optimization (-O)'

Tested compilation using gcc-7.3.1 and clang-5.0.2 on x86_64-linux,
and gcc-4.4.7 and clang-3.4.2 on an i686-linux.  Also tested cross-
compiling for Mac OS X using clang-5.0.2.
2019-10-10 18:31:26 +11:00
sezero
b917d456d2 make dllexport work with compilers other than MSVC
the issue is, flac and metaflac exes rely on flac_internal_???_utf8()
procedures from windows_unicode_filenames.c and there is no easy way
to exclude them from exports without breaking things. So export them
explicitly (they are exported anyway w/o this patch), but add a FIXME
note about the kludge in windows_unicode_filenames.c.
2019-10-10 18:30:39 +11:00
Erik de Castro Lopo
f771c6451b Remove un-needed Makefile.am 2019-10-01 08:18:28 +10:00
Peter Seiderer
44036c9a9b configure.ac: check for sys/auxv.h before defining FLAC__CPU_PPC
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Note: One of the buildroot autobuilder provided powerpc toolchains
seem to not provide the sys/auxv.h header file, resulting in a
compile failure (see [1] for details).

[1] http://lists.busybox.net/pipermail/buildroot/2019-September/259732.html
2019-09-30 07:49:10 +10:00
Erik de Castro Lopo
f764434a39 Version 1.3.3 2019-08-04 19:47:53 +10:00
Dagobert Michelsen
fcabd81aba Add -lrt for all operating systems for clock_gettime 2019-07-17 08:16:39 +10:00
Amitay Isaacs
c0215fc149 Check if compiler supports target attribute on ppc64
Check if the compiler supports __attribute__((target("cpu=power8")))
and __attribute__((target("cpu=power9")))

Signed-off-by: Amitay Isaacs <amitay@ozlabs.org>
2018-08-20 18:16:34 +10:00
Anton Blanchard
f301518c52 configure.ac: Fix FLAC__CPU_PPC on little endian, and add FLAC__CPU_PPC64
FLAC__CPU_PPC wasn't catching powerpcle or powerpc64le. Fix that and
add a new define for FLAC__CPU_PPC64.

Signed-off-by: Anton Blanchard <anton@ozlabs.org>
2018-08-20 18:16:34 +10:00