Commit Graph

206 Commits

Author SHA1 Message Date
Adrien Destugues
0849c914a7 xfs: Enable -Werror, fix all warnings
Define a dedicated OnDiskData structure for each on-disk structure. This
must match the on-disk layout, except for endianness, which is handled
by _SwapEndian methods. These structure are "plain old data" so we can
use offsetof on them. They are wrapped in an easier to use C++ API.

This resolves a lot of problems with the previous code: warnings caused
by the use of offsetof as well as a much simpler instanciation of the
objects from on-disk data.

Also fixed another problem with UUIDs, where the UUIDs were handled by
pointers in a lot of place where it was not necessary. Use references
instead. The V4 structures which don't have an UUID will return a "null"
(zero-filled) one.

Change-Id: Ifb2bf6ab94906ca50410dd3446d3566615392ca2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6021
Reviewed-by: Raghav Sharma <raghavself28@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2023-02-14 15:36:25 +00:00
PulkoMandy
90e87426ac ffmpeg: enable Werror and fix all warnings
Warnings fixed include usage of various deprecated functions, structures
and fields of ffmpeg.

Change-Id: I8d6338ad282f214a805b8d746ce22e2f0895fb25
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5954
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2022-12-26 15:16:19 +00:00
Jérôme Duval
3b8430dfcf strace: add an option to filter syscalls by name or by type
the type lists are hardcoded for now.

Change-Id: Iae89046ee52d3812354de619bfd9625217479c49
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5597
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2022-12-23 09:57:37 +00:00
Augustin Cavalier
f6166140a1 build: Define _BOOT_MODE once and for all in ArchitectureRules+BootRules.
Previously it was spread all around the tree, and was not defined
consistently for all boot objects (there were a number of boot modules
which did not define it, but did include headers which checked for it.)

Now, as it is handled in SetupBoot which is invoked for all boot objects,
it will be applied consistently throughout. We can thus drop the manual
additions of it from all Jamfiles.
2022-11-29 20:18:12 -05:00
David Karoly
05c1a8991e enable EFI boot for 32-bit ISO image
Building EFI partition for 32-bit anyboot ISO image was disabled
in hrev52443 to fix issue #14656.

As haiku_loader.efi is now available for the x86 architecture
since hrev55917, we can re-enable building EFI system partition
for the 32-bit ISO.

We can also remove the build rules related to HAIKU_ANYBOOT_LEGACY
as it is not used any more.

Change-Id: I9c2c272bcd0f9c1a98ee6cea300374dc26b4818d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5716
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2022-10-06 20:12:05 +00:00
Augustin Cavalier
4198265fa0 build: Optimize for size in the bootloaders, not for speed.
This saves almost 100K in size:

BIOS: 367K -> 271K
EFI: 541K -> 454K

Fixes #17961.
2022-09-30 14:49:24 -04:00
Mashijams
4d5b9e6726 xfs: disable Werror
compiler generates a warning regarding using offsetof() function on a non - POD type class

disabling Werror will not break build due to this warning

Change-Id: Ic72210f92a257e80ad8de9327892cfca7454076e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5538
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2022-08-10 08:01:06 +00:00
PulkoMandy
c8641d3a23 ramfs: enable -Werror
Change-Id: I02600442bb2cb28182e6fd2da4eb849621c1b877
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5439
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2022-07-15 14:54:27 +00:00
PulkoMandy
6325257204 nfs: enable -Werror
Change-Id: I529f0e2b363a36984d8779535a2da51a882a988c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5438
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2022-07-15 14:54:27 +00:00
PulkoMandy
5d1501ed1b reiserfs: enable -Werror
Change-Id: I2f431efee7b5d75c33bf6355e2a9e61ed233465c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5437
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2022-07-15 10:59:58 +00:00
PulkoMandy
34596ea53f FAT: enable -Werror
Change-Id: I4364d1325d4822d7094e985991c97639038522b8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5436
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-07-11 16:05:17 +00:00
Jim906
07d5dba065 kernel/drivers/disk: enable Werror
* For NVMe library, disable warnings.
* Otherwise, change code to avoid generating warnings.
* No functional change.
* Fixes #9460.

Change-Id: Ia790de391e6b230c909dff7023f00a19bdd574be
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5284
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2022-05-17 11:33:25 +00:00
Mashijams
b666bf3fd8 xfs : Enabling -Werror and fixing all build issues that result
This patch will fix almost all warnings we have in xfs code.
There are some which I haven't fixed yet, I added comments on
part of code which is giving error and its type as well.

I tested all the changes on xfs_shell and everything is
working fine.

Change-Id: I1af1d09e7eab7f2c2397193bd5a584c5d40c424c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5257
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2022-05-17 11:28:43 +00:00
PulkoMandy
a5c0d1a80e Enable Werror on some network drivers
Change-Id: Iff3a167da4c7a639f229556c501c2b71133fd8dc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5308
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2022-05-14 09:24:00 +00:00
PulkoMandy
1da90c98f2 Enable and fix WError in add-ons/kernel/busses/
Change-Id: I94e1580444faffdfc362dc8f59c39152d67a7076
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5235
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2022-04-22 20:28:47 +00:00
Adrien Destugues
ad398477d6 Enable some more Werror and fix compiler warnings
- All servers are now Werror
- All bus_managers are now Werror
- All input_server add-ons are now Werror
- Some more things in bin/ are Werror

Only tested on x86_64, I'll let the buildbot test on x86_gcc2 and RISC-V

Change-Id: I5ec86512eac729c862828a45d8431f85c4ec422b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5226
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2022-04-22 14:25:48 +00:00
Fredrik Holmqvist
a9bd2efd90 Delete config_manager
Change-Id: Ie909c9a22750c33fcb1dd7824e8b3e51c4d86572
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5208
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2022-04-20 15:57:04 +00:00
Alexander von Gluck IV
e9541a68ed build/riscv64: Disable relaxation linker optimization under clang/lld
* Fixes errors compiling under clang around 'R_RISCV_ALIGN
  requires unimplemented linker relaxation'
* Same fix FreeBSD applied https://reviews.freebsd.org/D25210

Change-Id: I680cac5e3e73d3ebb84aa0741bcee61530405db0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4986
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2022-03-09 13:45:04 +00:00
David Karoly
4f912a8b33 enable building EFI loader for x86
Change-Id: Ic7d2c3194b8555f7b6704131f5fc2bce3b139ee4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4918
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2022-01-31 14:22:57 +00:00
David Karoly
1103466926 build ARM EFI bootloader with soft-float
Change-Id: If7feffafea4fc6d295d04f696127c8f0fbd8fb9d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4704
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2021-12-11 14:07:06 +00:00
Augustin Cavalier
c52bbf73b5 ArchitectureRules: Adjustments to Werror flags for GCC 11. 2021-12-07 14:24:15 -05:00
Augustin Cavalier
573b7b1f21 ArchitectureRules: Temporarily disable -Wno-error that GCC 8 does not like. 2021-11-16 22:48:40 -05:00
Augustin Cavalier
38dc3bf2c5 ArchitectureRules: Add two new -Wno-error flags.
The use of the "register" keyword is harmless, though we should eventually
remove it.

Taking addresses of packed members is "mostly harmless" on x86 where
unaligned accesses are OK. It's less harmless on other architectures,
but we sometimes use packed structures when manually aligning things.
Unfortunately GCC throws this warning even when the actual pointer would
be aligned, not merely when it's unaligned, making the warning far too
noisy and not really that useful.

"Found" by GCC 11.
2021-11-16 15:10:05 -05:00
Fredrik Holmqvist
e6f4113978 [arm64] Set march to armv8.2-a+fp16, fix posix math
The march can be reduces later if needed.

Use arm64 optimized math, and set std=c11 so
__FLT_EVAL_METHOD__ is 0 and not 16:
https://gcc.gnu.org/bugzilla//show_bug.cgi?id=100854
2021-11-09 21:59:31 +01:00
PulkoMandy
6711cd9e9e bootloader: reduce stack usage
On Sparc Openboot, we get allocated a stack of only 8 kilobytes, and
each called function costs at least 176 bytes for the stack frame.

This means we need to be more careful than usual about stack usage. Move
some large-ish allocations off the stack by either making them static,
or allocated dynamically.

Add a compiler flag to error on functions which use too much stack. The
threshold is at 1023 bytes, because that's what allowed me to find the
two functions that were causing a stack overflow (open_from and
_ParseActivatedPackagesFile)

Change-Id: Ia0d13a9247e1a3fff4ce654bdffd6edb16e7cbc7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2371
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2021-10-22 20:23:01 +00:00
Franck LeCodeur
245e831213 file_systems/googlefs: Fix warnings and enable Werror
Part of #9460

Change-Id: I1dc3271b72886ede8db3c78e39b12de873c3e8bd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4572
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2021-10-20 18:01:15 +00:00
Franck LeCodeur
718fce997a drivers/input: Fix warnings and enable Werror
Correct signedness for comparisons, remove unused code, remove unused variable, correct variable type for callbacks

Part of #9460

Change-Id: Ie48e8498e0830ed8b175986aaf82b94a1d99b72f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4570
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2021-10-20 18:00:36 +00:00
Augustin Cavalier
c5325c6690 ArchitectureRules: Increase HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET on x86.
The bootloader is larger after adding zstd and needs more space now.
384 is the value used already on PPC and SPARC. Fixes generating
floppyboot archives for anyboot images following recent changes.
2021-10-19 20:59:26 -04:00
Franck LeCodeur
628ddb2790 usb_webcam: Fix warnings and enable Werror
Done as part of #9460

Change-Id: I45f53451c91d63f5e5170234c75a831472cfffc7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4501
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2021-10-18 16:28:20 +00:00
Franck LeCodeur
23d7ddafcc input_server/methods/pen: Enable Werror as there are no related warnings
Part of #9460

Change-Id: I73a23fb2a346ab12ae95652de21f215c2a227c9e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4566
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2021-10-14 16:46:44 +00:00
Franck LeCodeur
2453e792d5 bus_managers/firewire: Enable Werror as there are no related warnings
Part of #9460

Change-Id: I236519962aaac58de45a4054bfb51ceb9a93df15
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4565
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2021-10-14 16:46:44 +00:00
Adrien Destugues
d29af2b6eb ArchitectureRules: Grooming of EnableWerror list
- All network add-ons are now built with Werror, collapse the list to a
  single entry
- Add a few busses add-ons that were not listed (to be checked and fixed if
  needed)
2021-10-11 21:31:09 +02:00
Franck LeCodeur
b06bf005c5 drivers/bus: Enable Werror as there are no related warnings
Part of #9460

Change-Id: Ic88a45e0d548098d076f73ef39bd149d7a82546a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4569
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2021-10-11 19:26:08 +00:00
Franck LeCodeur
4ff75b9c6c drivers/power: Enable Werror as there are no related warnings
Part of #9460

Change-Id: Ia8dad5c0c4b8d3efaa3205bb8bf6cc2eb6b4e95d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4568
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2021-10-11 19:26:08 +00:00
Franck LeCodeur
9170263e93 kernel/debugger: Fix warnings and enable Werror
Add one missing include and change variable declaration types to match comparison type.

Part of #9460

Change-Id: I95a12e5db11f95c2fd7c1906eaabdc5e21236cf1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4567
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2021-10-11 19:26:08 +00:00
Franck LeCodeur
98193d2688 raw_decoder: Fix warnings and enable Werror
Done as part of #9460

Warnings related to comparison of integer expressions of different signedness

Change-Id: If5543db951b11aab1858a18a057b7d2e08ee2b42
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4503
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2021-10-09 18:00:06 +00:00
Augustin Cavalier
7aa5574713 kernel & addons: Build with the non-legacy GCC even on x86_gcc2h.
Only one code change: for some reason, GCC chokes on the cr3 functions
as macros (throwing errors about invalid registers.) The BSDs have them
as inline functions instead, so they are converted to that here.

Tested and working. There seems to be about a 10% decrease in CPU time
on some compilation benchmarks that I briefly tried.

Change-Id: I31666297394d7619f83fca6ff5f933ddd6f07420
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4515
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2021-10-02 18:29:40 +00:00
Augustin Cavalier
c4eec9f1e8 Distinguish KERNEL_ARCH_DIR from KERNEL_ARCH.
On x86_64, the KERNEL_ARCH should really be "x86_64", but it was "x86"
as the architecture sources/headers directory is shared between 32 and 64 bit.

Should not be a functional change on any platform outside x86_64.
2021-10-01 16:26:45 -04:00
Franck LeCodeur
7b1db53111 network/datalink_protocols: Enable Werror as there are no related warnings
Part of #9460

Change-Id: Ibcc30af0c2d351742cbedd6df15b2880b92edfee
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4513
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2021-09-30 13:33:30 +00:00
Franck LeCodeur
521f76b999 network/stack: Enable Werror as there are no related warnings
Part of #9460

Change-Id: I4958c99c828a34343481b8e6ada877c9124411a8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4512
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2021-09-30 13:33:30 +00:00
Jérôme Duval
08d9716a9a video_producer_demo: fix comparison warnings
Change-Id: Ibfc8780c55e229190573918a4cf1f119b5e345c6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4504
Reviewed-by: Franck LeCodeur <cassisian@gmail.com>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2021-09-27 12:15:05 +00:00
Franck LeCodeur
1fb138bf94 ext2: Fix build warnings, enable Werror
This fix is for ticket #9460 to enable -Werror for ext2.

- Unused functions are removed.

- The ASSERT macro was redefining a different ASSERT macro from the included files. Now it gets undefined first.

- One comparison side was cast to ptrdiff_t because X86_gcc2 complained about signed/unsigned comparison

Change-Id: Ib0caade2f83de34c04acc0fc6aa5ed50712daec4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4453
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2021-09-16 06:52:00 +00:00
Fredrik Holmqvist
5ea726b93a Use PIC and shared flags on ARM64 2021-08-21 10:33:59 +02:00
Han Pengfei
5a1731bcbc arm/build/ldscript: import ld script and build paras from riscv64
- This will fix page translation fault when accessing
static variables.
- Now with this patch, we made uart pl011 works for qemu.

Change-Id: I8eecc18ad05bd950768b49d9ed268c4c2a3baf25
Signed-off-by: Han Pengfei <pengphei@qq.com>
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4123
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: X512 <danger_mail@list.ru>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2021-07-03 09:11:04 +00:00
X512
d407b17b18 kernel: riscv64 patches
Change-Id: I8ebcbaa395cbccb50af08fd2f1b049b5cbb949c7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3883
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: X512 <danger_mail@list.ru>
2021-06-07 07:14:23 +00:00
X512
a182bd6eb5 haiku_loader: initial support for RISC-V TinyEMU
Change-Id: Ie102f466725f45072db25a9629fa8e28526484eb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3882
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2021-05-27 17:35:27 +00:00
Jérôme Duval
04be20a75a Implement stack protection support
this adds kernel & libroot stack protector hooks. it uses /dev/random in userspace.
A configure option --enable-stack-protector is added to activate -fstack-protector
on selected system components (ATM apps, kits, servers).

Change-Id: If3a2920ba9aa0a85eaff4ba6778947f8c76ade31
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3895
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2021-05-03 17:52:31 +00:00
Alexander von Gluck IV
d123849688 build/cross-tools: explicitly set ISA for riscv64
* Enable TLS for riscv64. For now select a dummy
  implementation.
* RISC-V has a register (tp) dedicated to TLS
* All the "desktop-like" RV64 chipsets implement GC
* Same ISA we currently build for... but calls it out
  in-case defaults change.

Change-Id: I623b6e5c309b6a6e80ec378e456b2335c561269d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3632
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2021-01-20 19:38:01 +00:00
Alexander von Gluck IV
f8650bc2db jam/ArchitectureRules: Bump SDIMAGE_BEGIN to 2KiB
* If we start at 0 we overwrite the partition table
  with the EFI boot filesystem

Change-Id: I7d1d5d65cdaf78f3bd3b87672e1e8e161f78ce75
2021-01-12 15:03:40 -06:00
Alexander von Gluck IV
58332722cd build/mmc: Drop usage of mtools, use internal tooling
* Fixes the ARM image to actually include Haiku within
  a partition on the SD card.
* Drops the mtools requirement
* Drops the C/H/S requirements

Change-Id: Ie2776a09399ac181daab7a503e96e27ab7093af4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3608
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2021-01-07 21:34:00 +00:00