mirror of
https://review.coreboot.org/flashrom.git
synced 2025-11-17 13:10:42 +01:00
359c535a05cc70c071ac04ee77ad621936287130
Both the _POSIX_FSYNC macro and the fsync() declaration are in <unistd.h>. The current code works by accident on glibc courtesy of transitive includes, but is broken in Android currently (mistakenly assuming there is no fsync() because _POSIX_FSYNC isn't defined, merely because <unistd.h> hasn't been included), and won't compile with Android's C23 addition of call_once() to <stdlib.h> because _POSIX_FSYNC comes in transitively via <limits.h> but without <unistd.h> for the fsync() declaration. Fix all of this by just including the right POSIX header file for both the feature macro and the function declaration. Change-Id: Ifd6eeba56cffabb6a37880c78ea21de4705308b5 Signed-off-by: Elliott Hughes <enh@google.com> Reviewed-on: https://review.coreboot.org/c/flashrom/+/90015 Reviewed-by: Anastasia Klimchuk <aklm@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
flashrom README
===============
flashrom is a utility for detecting, reading, writing, verifying and erasing
flash chips. It is often used to flash BIOS/EFI/coreboot/firmware images
in-system using a supported mainboard, but it also supports flashing of network
cards (NICs), SATA controller cards, and other external devices which can
program flash chips.
It supports a wide range of flash chips (most commonly found in SOIC8, DIP8,
SOIC16, WSON8, PLCC32, DIP32, TSOP32, and TSOP40 packages), which use various
protocols such as LPC, FWH, parallel flash, or SPI.
Do not use flashrom on laptops (yet)! The embedded controller (EC) present in
many laptops might interact badly with any attempts to communicate with the
flash chip and may brick your laptop.
Please make a backup of your flash chip before writing to it.
Please see the flashrom(8) manpage :doc:`classic_cli_manpage`.
The list of platforms that package flashrom can be found on `repology.org <https://repology.org/project/flashrom/versions>`_.
Information about recent releases can be found in :doc:`/release_notes/index`.
Building / installing / packaging
---------------------------------
flashrom is built with **meson**. TLDR:
::
meson setup builddir
meson compile -C builddir
meson test -C builddir
meson install -C builddir
For full detailed instructions, follow the information in
:doc:`dev_guide/building_from_source`.
If you are interested in development, have a look at :doc:`dev_guide/development_guide`.
Contact
-------
The official flashrom website is:
https://www.flashrom.org/
For available contact methods see :doc:`contact`
Description
Languages
C
90.2%
Rust
5%
Shell
2%
Makefile
1.6%
Meson
1.2%