Commit Graph

60136 Commits

Author SHA1 Message Date
John Scipione
fdc59e4e7e fs_darwin fix warning: '&&' within '||'
place parentheses around the '&&' expression to silence this warning

Change-Id: Ie6152d2371ed65f57e6e75c9541263a5e1511513
Reviewed-on: https://review.haiku-os.org/c/1532
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-06-25 06:47:10 +00:00
Murai Takashi
37c1db12f3 add-ons/kernel/file_systems/fat: Fix -Wformat=
Change-Id: Ife9278565adedc95d8574b1a539c3d6c5642a565
Reviewed-on: https://review.haiku-os.org/c/1520
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-06-24 21:58:21 +00:00
Murai Takashi
5caa9c867e drivers/audio/hda: Fix -Wformat=
Change-Id: Ifbc08eefc53cac2e23fc3ac4b003bf4d897265d7
Reviewed-on: https://review.haiku-os.org/c/1522
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-24 21:58:10 +00:00
Murai Takashi
fe5e83a681 drivers/audio/ac97: Fix -Wformat=
Change-Id: I454ca76cfd5f8ebddb74c6b68a940d0444a82bb1
Reviewed-on: https://review.haiku-os.org/c/1530
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-06-24 21:57:53 +00:00
Alexander von Gluck IV
650c8b81a2 nvme: Use kernel private memory barriers
Change-Id: I1747de7afb2a5b2ec845c1c14f013dbcb9bd72f8
Reviewed-on: https://review.haiku-os.org/c/1528
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
2019-06-20 20:20:03 +00:00
Alexander von Gluck IV
b313d63eae arm/atomics: Move cpu-specific memory barriers to arch_cpu
* Now matches the rest of the architectures.

Change-Id: I6699e0c8f729923770f136f2c9599185a685336a
Reviewed-on: https://review.haiku-os.org/c/1527
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
2019-06-20 20:20:03 +00:00
Alexander von Gluck IV
37761761a0 jam: Style fix in build/MMCImage
Change-Id: Idb169f59ed77c9038e48e0e26e4fa53e92103ffe
2019-06-19 19:28:52 -05:00
Alexander von Gluck IV
f2762b2d56 fdt/serial: Fix tracing, enhance
Change-Id: Ibc42267fa1208344dbf9062075dbad7086e4e3d4
2019-06-19 19:28:02 -05:00
Alexander von Gluck IV
75262df789 arm: Fix SD Image after haiku_loader changes
* haiku_loader.u-boot doesn't fit in fat32 like haiku_loader.ub
* Adjust when writing. Update u-boot scripts to expect new filename
* Shrink loader partition to 32M, add our filesystem to end

Change-Id: I62936526a7dea2c41e26a7c0f9e05a368622a6a3
2019-06-19 16:02:39 -05:00
Alexander von Gluck IV
23c507bd15 docker/bootstrap: Add alternative fedora bootstrap container
Change-Id: I2e77f04a6b74858abf74a266a360dbf1dba4bed7
2019-06-19 11:25:05 -05:00
Alexander von Gluck IV
4b0251ba5b docker/bootstrap: Improve local code injection
Change-Id: Ib1961d829ef1418a9b64307c73a01bab3520279a
2019-06-19 11:24:18 -05:00
Alexander von Gluck IV
cb343bfe59 nvme: Fix nvme driver build on non-x86
Change-Id: Ia7a1dc56bcec69678e1fc2d8a427c24a32215bb8
2019-06-19 08:58:06 -05:00
Alexander von Gluck IV
81afd20b21 arm/repositories: Add final missing requirements
Change-Id: I7fdc23160719774d8977ae6b5ac4af8a5d0ee358
2019-06-19 08:45:32 -05:00
Alexander von Gluck IV
70ebf78e12 arm/repositories: Add missing ncurses6 package
Change-Id: I6ca29abbcde80bd09db4c1a4808bd71346afd20e
2019-06-19 07:57:37 -05:00
Alexander von Gluck IV
836e51c326 arm/repositories: Update for latest build_packages
* For tracking, there are *mega* hacked together using
  llvm's linker and functionality isn't a sure thing.
* Thanks waddlesplash for the sketchy changes :-)
* Hopefully gets non-bootstrap arm builds working again
  and let us work on the toolchain without blocking arm
  development.

Change-Id: I0617ed83cc757d098e6464222405f75eed91196e
2019-06-18 19:42:16 -05:00
Augustin Cavalier
8c8615a293 libroot/arm: Add generic_stack_trace.
Fixes the link of libroot_debug. Now Haiku ARM bootstrap builds
complete successfully!
2019-06-17 21:07:44 -04:00
Augustin Cavalier
99bcdc503c bootloade/arm: Change a physical address to phys_addr_t.
Fixes a compile error with recent GCC.
2019-06-17 21:07:16 -04:00
Augustin Cavalier
be8d35d2a4 HaikuPortsCross/arm: Fix version of gcc_bootstrap package. 2019-06-17 21:06:50 -04:00
Augustin Cavalier
f1e80d365b libroot: Flesh out glibc floating point support for ARM.
The last time someone touched this directory, there was no floating
point support configured in ARM. Now we are targeting ARMv7a+, which
always has a hard FPU, so we need this now.

With this, a haiku.hpkg can (finally) be built again (at least
under lld, anyway!)
2019-06-17 20:44:56 -04:00
Augustin Cavalier
57e40b4406 Debugger: Use the BVariant default constructor in Token().
The value-based constructor does the same. Fixes an "ambiguous
call" error on ARM builds.
2019-06-17 19:59:40 -04:00
Augustin Cavalier
750161f4c0 ArchitectureRules: Remove -Wcast-align from the default set.
It is incredibly noisy on GCC8, and not really that valuable
for us at present. Individual architectures (SPARC?) can turn
it on if desired.
2019-06-17 19:58:39 -04:00
Augustin Cavalier
c6b9a07f44 ArchitectureRules: Allow overriding HAIKU_LINK.
I am using this to use clang+lld for linking on ARM builds,
which seems to be more tolerant than binutils ld is, and
gets the build a bit farther for now.
2019-06-17 19:57:58 -04:00
Augustin Cavalier
b6b66df0c5 ArchitectureRules: Disable usage of -mapcs-frame on ARM.
It has been long since deprecated by GCC.
2019-06-17 19:57:22 -04:00
Augustin Cavalier
f861a8596a XHCI: Set the ENT bit on the Status stage TRB for Control transfers.
Otherwise, it may deschedule this pipe without evaluating the
Event Data TRB and generating the interrupt. Should fix the
"slowness" issue of #15115.
2019-06-17 19:16:11 -04:00
Augustin Cavalier
4f8124c5e3 USB: Add initialization checks to Pipe usages of Device.
Complements the ones added earlier to the module itself.
Should fix the panic portion of #15115.
2019-06-17 19:14:29 -04:00
Augustin Cavalier
ceec04eaf5 Deskbar: Add a declaration for a constructor to TStartableMenuBar.
Appeases GCC2.
2019-06-17 18:41:37 -04:00
Murai Takashi
a76e1eb3c7 bin/top: Fix -Wformat=
Change-Id: Ie408017684313531f2dc18d9401cd54bb00a7e12
Reviewed-on: https://review.haiku-os.org/c/1515
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-17 22:34:37 +00:00
Murai Takashi
f5fb43c94f bin/vmstat: Fix -Wformat=
Change-Id: Id0a03d868143880d50c685d830b23017293f3e38
Reviewed-on: https://review.haiku-os.org/c/1518
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-17 22:34:37 +00:00
Murai Takashi
fe6e591432 bin/mail_utils/spamdbm: Fix -Wformat=
Change-Id: I912a7eac48e6e0343a59821fb1026ef54e6b0d75
Reviewed-on: https://review.haiku-os.org/c/1521
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-17 22:34:37 +00:00
Murai Takashi
7d633b87d8 bin/mkdos: Fix -Wformat=
Change-Id: I10b44b2a660fb7db930b7d3ec139c9ada71e8109
Reviewed-on: https://review.haiku-os.org/c/1519
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-17 22:34:37 +00:00
Augustin Cavalier
74c38cab40 BMenuBar & Deskbar: Make the hack to call ShowMenuBar a lot less ugly.
The previous hack, which as the comment (and __MWERKS__) implies
dates all the way back to the Be era, finally broke: int32 is "int"
on non-x86, not "long", and so this generated an undefined symbol
error on ARM.

The best solution seems to be to make StartMenuBar merely protected,
and then make a subclass where it is fully public to call it.
This is a lot less fragile (and much less ugly.)

Change-Id: I0519d0d9eeb1cc4523d0c6dd4fdfe8688ed1092c
Reviewed-on: https://review.haiku-os.org/c/1516
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-06-17 11:49:48 +00:00
Augustin Cavalier
581a586f95 XHCI: Change ADDR print to PHYSADDR to appease GCC. 2019-06-16 23:08:36 -04:00
Augustin Cavalier
d511533a48 build_cross_tools_gcc4: Keep static libstdc++, but rename it.
The gcc_bootstrap recipe still needs it, it seems.
2019-06-16 20:30:53 -04:00
Augustin Cavalier
6a2133b166 XHCI: Overhaul endpoint ring logic.
The changes in this commit are large but also subtle, so
an explanation of how they came to be seems to make sense:

Earlier today I tried booting Haiku on QEMU under USB3 ... and
discovered that it didn't work, with the "Operation timed out"
message from in usb_disk upon failing a data transfer. Indeed,
turning on tracing showed no event was being posted for the
transfer. So, I downloaded QEMU's source code, turned on XHCI
debugging, and began tracing what was going on.

Eventually I determined by adding more and more printfs into QEMU's
XHCI implementation that what was occuring was that it was evaluating
a Link TRB, hitting an empty TRB, and then deciding that the TD (aka.,
the "run" of TRBs) was not ready to be consumed, and bailing.

In fact, that very condition (a link TRB leading to an empty TRB)
is precisely what _LinkDescriptorForPipe did before this commit.
We allocate only a small (8 before this commit, 16 + 1 after this
commit) TRB ring for each *endpoint*, and larger ones on a per-*transfer*
basis; and just write Link TRBs onto the Endpoint ring pointing to
the transfer TD, and then one at the end of each transfer TD leading
back to the endpoint ring.

The reason this occured inside usb_disk, and not earlier (e.g.
during descriptor fetching), is that QEMU has special logic around
determining transfer lengths of control transfers which made it
not perform the "TRB valid?" check after evaluating the Link TRB.
So, being implementation-defined behavior, I am guessing that
this same problem was also the cause of boot failures on real
hardware.

This also means that the problem was essentially a race condition,
as if we posted another transfer to the ring before it evaluated
the TRB, it would always work.

The solution of course is to put some valid TRB at the end of
every transfer on the Endpoint ring. A "no-op" would have done
the job (well, maybe not, it appears QEMU does not implement "no-op"
TRBs for some reason), but there was another feature of XHCI
that we did not take advantage of: Event Data TRBs. These provide
the "total transferred length" as well as the status, instead of
the "remaining length" of the final TRB.

This of course required refactoring the use of the CHAIN bit
and the IOC bit (namely, more or less all TRBs save the Event Data
get the CHAIN bit set, and none save Event Data get the IOC bit.)

There was also an update to the XHCI spec since I've last committed here,
so the new comments are in reference to the "XHCI 1.2" spec. (I'll
eventually find time to update the old ones.)

Fixes booting from USB3 on QEMU, and most likely also on
bare metal, where it at least got to usb_disk (it does
not seem to fix the case where usb_disk does not even start.) Whew!
2019-06-16 19:46:16 -04:00
Augustin Cavalier
9be728dee0 XHCI: Set the DCS bit in SetTRDequeue.
It is needed here as in ConfigureEndpoint. See inline comment.
This matches FreeBSD's behavior.
2019-06-16 19:46:16 -04:00
Augustin Cavalier
4029b219e9 XHCI: Fix a -Werror=format. 2019-06-16 19:46:16 -04:00
Murai Takashi
e18440dc83 bin/shutdown: Fix -Wformat=
Change-Id: I03d89d576334fbf73134c79f3c6903860a0d447f
Reviewed-on: https://review.haiku-os.org/c/1513
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-16 22:09:54 +00:00
Murai Takashi
312640b12c bin/version: Fix -Wformat=
Change-Id: I71fd38b6d1bb1782170438b27f66c462dcec0f0b
Reviewed-on: https://review.haiku-os.org/c/1514
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-16 22:09:37 +00:00
Murai Takashi
6ba31e25d7 bin/screenmode: Fix -Wformat=
Change-Id: Ide67c285a064c8e1111e1522be2946f69a5bcfc6
Reviewed-on: https://review.haiku-os.org/c/1512
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-16 14:53:11 +00:00
Murai Takashi
e98c206263 bin/listres: Fix -Wformat=
Change-Id: Ida7d957c9a1f73dc87b7e0ce488c1c30cb5a95cc
Reviewed-on: https://review.haiku-os.org/c/1511
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-16 14:53:11 +00:00
Murai Takashi
b8a9c31265 bin/listfont: Fix -Wformat=
Change-Id: Ifa451635a6ff3d42b916d7e535b41db347d6d1bf
Reviewed-on: https://review.haiku-os.org/c/1510
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-16 14:53:11 +00:00
Murai Takashi
d8bf363563 bin/listport: Fix -Wformat=
Change-Id: I5d080b7cc176681a2addbb03380bde76bc748173
Reviewed-on: https://review.haiku-os.org/c/1509
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-16 14:53:11 +00:00
Murai Takashi
74b56a20ee bin/lsindex: Fix -Wformat=
Change-Id: Ib95180d64547f728949efa64aed57f63aee57441
Reviewed-on: https://review.haiku-os.org/c/1508
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-06-16 14:53:11 +00:00
Adrien Destugues
4429c2c891 Terminal: remove fullscreen tooltip
Whenever using Terminal in fullscreen mode, there is a permanently on
tooltip with the shortcut to exit fullscreen mode wherever you leave
your mouse. This is super annoying and as a result I find myself rarely
using fullscreen mode.

Remove the tooltip, and instead add a button to the right of the tab bar
to exit fullscreen mode, as done in WonderBrush and WebPositive.

Change-Id: If42f038da3d644970de6214a31195882d4fc7eee
Reviewed-on: https://review.haiku-os.org/c/1507
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-16 14:51:01 +00:00
Adrien Destugues
f74f860085 BitmapButton: move from WebPositive to libshared
Remove a currently unused copy of it from HaikuDepot.

Change-Id: Idb97fae8e7190da6bc1049b3c1f1df929ea91bab
Reviewed-on: https://review.haiku-os.org/c/1506
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-06-16 14:51:01 +00:00
Augustin Cavalier
d689db1448 HaikuPortsCross: Synchronize a few more package versions to haikuports.cross. 2019-06-15 20:25:43 -04:00
Augustin Cavalier
8830782a61 RepositoryRules: Error when the just-built package does not exist.
This will make version mismatches between the bootstrap repository
and the haikuports.cross repository more apparent.
2019-06-15 20:24:12 -04:00
Augustin Cavalier
46bca9bd51 kernel: Make exit() stub truly non-returning. 2019-06-15 19:11:51 -04:00
Augustin Cavalier
db408f1835 docker/bootstrap: Add libncurses-dev, needed by texinfo. 2019-06-15 16:21:25 -04:00
Augustin Cavalier
6a9f74bc4f HaikuPortsCross: Tweak the GCC version following changes. 2019-06-15 15:45:18 -04:00