Closed q66 closed 5 years ago
Some comments are in https://github.com/void-linux/void-packages/pull/8244.
Hi and good idea to move here! Now I spent more than 2 hours on comparing ppc64le-dotconfig with ppc64-config just to realize I was on the wrong branch. This is annoying ;-P
I think it might make more sense to try and collect a list of vital changes required from ppc64le to ppc64 for the G5 by only peeking at diff ppc64{le,}-dotconfig
. Manually changing the config file like I tried is probably too cumbersome because you sometimes have a big number of changes spread over the entire config file by modifying just one option.
That is what I did when making the ppc64le config - I started with Ubuntu -generic, then gradually changed things in menuconfig until the diff matched.
FYI I refactored the ppc64-dotconfig file once more using ppc64le-dotconfig as a base and applying differences between it and Debian's 4.19.x config until it booted and worked on the G5 again. Now I based the linux5.0/files/ppc64-dotconfig on it, answered a lot of config options, and am building the 5.0.9 kernel to test on the hardware.
This is probably as close as I can approach ppc64le configuration.
Perfect. Is that what's currently in the ppc64-gnu
branch?
Yes, I pushed it. linux5.0 is not yet tested, though. For the new options for 5.0 I sometimes chose to build a new module instead of not building it as suggested. How did you go from 4.19 to 5.0?
I took my 4.19 config, reapplied it on a 5.0 tree and then checked each option against what other Void kernels are doing. Technically, if things are right, the diff between the previous 4.19 BE config and new 4.19 BE config should be roughly the same as the diff between the 5.0 configs...
also, i checked your configs against the new options I wanted to enable in the LE config as well compared to my current config, it seems you enabled all of them, so the only thing to do at this point is to get the updated BE configs upstream and I will then update the LE configs accordingly :)
perfect, great job on this
BTW force installing the same kernel using xbps-install -S -f linux4.19
gave some misleading output when dracut wass run, probably due to the new or removed modules.
Running depmod -a 4.19.36_1
and dracut -f --kver=4.19.36_1
again then fixed it for me.
yeah, that's normal on any architecture (and indeed due to module changes)
Anyway I think you can merge ppc64-gnu whenever you see fit. There's still the issue with build_helper=gir not working for cross ppc64-gnu which I don't understand and could not fix. Perhaps someone else can fix that once the changes are in void-linux/void-packages master.
Okay. Btw, some more things I've come across when inspecting the configs:
-CONFIG_LOG_BUF_SHIFT=19
+CONFIG_LOG_BUF_SHIFT=17
necessary?
-# CONFIG_CMDLINE_BOOL is not set
+CONFIG_CMDLINE_BOOL=y
+CONFIG_CMDLINE="console=hvsi0 console=hvc0 console=ttyS0,9600 console=tty0"
+# CONFIG_CMDLINE_FORCE is not set
do we want these? this pretty much forces serial console output by default and stuff, shouldn't we let the bootloader to set these?
# CONFIG_GCOV_KERNEL is not set
-# CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
-# CONFIG_PLUGIN_HOSTCC is not set
-# CONFIG_HAVE_GCC_PLUGINS is not set
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+CONFIG_PLUGIN_HOSTCC="g++"
+CONFIG_HAVE_GCC_PLUGINS=y
probably shouldn't be changed
-CONFIG_MQ_IOSCHED_KYBER=y
-# CONFIG_IOSCHED_BFQ is not set
+CONFIG_MQ_IOSCHED_KYBER=m
+CONFIG_IOSCHED_BFQ=m
+CONFIG_BFQ_GROUP_IOSCHED=y
probably best to leave the I/O schedulers alone, to keep it the same everywhere
-CONFIG_ARCH_MMAP_RND_BITS=28
+CONFIG_ARCH_MMAP_RND_BITS=14
CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
-CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS=7
necessary?
-CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
necessary?
@@ -870,7 +909,7 @@ CONFIG_XFRM_OFFLOAD=y
CONFIG_XFRM_ALGO=m
CONFIG_XFRM_USER=m
CONFIG_XFRM_INTERFACE=m
-# CONFIG_XFRM_SUB_POLICY is not set
+CONFIG_XFRM_SUB_POLICY=y
CONFIG_XFRM_MIGRATE=y
# CONFIG_XFRM_STATISTICS is not set
CONFIG_XFRM_IPCOMP=m
@@ -878,11 +917,11 @@ CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y
CONFIG_SMC=m
CONFIG_SMC_DIAG=m
-# CONFIG_XDP_SOCKETS is not set
+CONFIG_XDP_SOCKETS=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
-# CONFIG_IP_FIB_TRIE_STATS is not set
+CONFIG_IP_FIB_TRIE_STATS=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_VERBOSE=y
@@ -902,7 +941,7 @@ CONFIG_SYN_COOKIES=y
CONFIG_NET_IPVTI=m
CONFIG_NET_UDP_TUNNEL=m
CONFIG_NET_FOU=m
-# CONFIG_NET_FOU_IP_TUNNELS is not set
+CONFIG_NET_FOU_IP_TUNNELS=y
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_ESP_OFFLOAD=m
@@ -960,9 +999,12 @@ CONFIG_IPV6_NDISC_NODETYPE=y
CONFIG_IPV6_TUNNEL=m
CONFIG_IPV6_GRE=m
CONFIG_IPV6_FOU=m
+CONFIG_IPV6_FOU_TUNNEL=m
CONFIG_IPV6_MULTIPLE_TABLES=y
CONFIG_IPV6_SUBTREES=y
-# CONFIG_IPV6_MROUTE is not set
+CONFIG_IPV6_MROUTE=y
+CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IPV6_PIMSM_V2=y
CONFIG_IPV6_SEG6_LWTUNNEL=y
CONFIG_IPV6_SEG6_HMAC=y
CONFIG_IPV6_SEG6_BPF=y
@@ -992,7 +1034,7 @@ CONFIG_NETFILTER_CONNCOUNT=m
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_SECMARK=y
CONFIG_NF_CONNTRACK_ZONES=y
-# CONFIG_NF_CONNTRACK_PROCFS is not set
+CONFIG_NF_CONNTRACK_PROCFS=y
CONFIG_NF_CONNTRACK_EVENTS=y
CONFIG_NF_CONNTRACK_TIMEOUT=y
CONFIG_NF_CONNTRACK_TIMESTAMP=y
@@ -1195,7 +1237,7 @@ CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
CONFIG_IP_VS_SH=m
-# CONFIG_IP_VS_MH is not set
+CONFIG_IP_VS_MH=m
CONFIG_IP_VS_SED=m
CONFIG_IP_VS_NQ=m
@@ -1259,7 +1301,7 @@ CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_RAW=m
-# CONFIG_IP_NF_SECURITY is not set
+CONFIG_IP_NF_SECURITY=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
@@ -1300,11 +1342,16 @@ CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_TARGET_SYNPROXY=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_RAW=m
-# CONFIG_IP6_NF_SECURITY is not set
+CONFIG_IP6_NF_SECURITY=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_TARGET_MASQUERADE=m
CONFIG_IP6_NF_TARGET_NPT=m
CONFIG_NF_DEFRAG_IPV6=m
+
+#
+# DECnet: Netfilter Configuration
+#
+CONFIG_DECNET_NF_GRABULATOR=m
CONFIG_NF_TABLES_BRIDGE=y
CONFIG_NFT_BRIDGE_REJECT=m
CONFIG_NF_LOG_BRIDGE=m
@@ -1354,7 +1401,7 @@ CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
CONFIG_SCTP_COOKIE_HMAC_SHA1=y
CONFIG_INET_SCTP_DIAG=m
CONFIG_RDS=m
-# CONFIG_RDS_RDMA is not set
+CONFIG_RDS_RDMA=m
CONFIG_RDS_TCP=m
# CONFIG_RDS_DEBUG is not set
CONFIG_TIPC=m
@@ -1391,7 +1438,8 @@ CONFIG_NET_DSA_TAG_QCA=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q_MVRP=y
-# CONFIG_DECNET is not set
+CONFIG_DECNET=m
+CONFIG_DECNET_ROUTER=y
CONFIG_LLC=m
CONFIG_LLC2=m
CONFIG_ATALK=m
@@ -1411,16 +1459,16 @@ CONFIG_6LOWPAN_NHC_IPV6=m
CONFIG_6LOWPAN_NHC_MOBILITY=m
CONFIG_6LOWPAN_NHC_ROUTING=m
CONFIG_6LOWPAN_NHC_UDP=m
-# CONFIG_6LOWPAN_GHC_EXT_HDR_HOP is not set
-# CONFIG_6LOWPAN_GHC_UDP is not set
-# CONFIG_6LOWPAN_GHC_ICMPV6 is not set
-# CONFIG_6LOWPAN_GHC_EXT_HDR_DEST is not set
-# CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG is not set
-# CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE is not set
+CONFIG_6LOWPAN_GHC_EXT_HDR_HOP=m
+CONFIG_6LOWPAN_GHC_UDP=m
+CONFIG_6LOWPAN_GHC_ICMPV6=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m
CONFIG_IEEE802154=m
CONFIG_IEEE802154_NL802154_EXPERIMENTAL=y
CONFIG_IEEE802154_SOCKET=m
-# CONFIG_IEEE802154_6LOWPAN is not set
+CONFIG_IEEE802154_6LOWPAN=m
CONFIG_MAC802154=m
CONFIG_NET_SCHED=y
@@ -1467,16 +1515,25 @@ CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
-# CONFIG_CLS_U32_PERF is not set
-# CONFIG_CLS_U32_MARK is not set
+CONFIG_CLS_U32_PERF=y
+CONFIG_CLS_U32_MARK=y
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_FLOW=m
-# CONFIG_NET_CLS_CGROUP is not set
+CONFIG_NET_CLS_CGROUP=m
CONFIG_NET_CLS_BPF=m
CONFIG_NET_CLS_FLOWER=m
CONFIG_NET_CLS_MATCHALL=m
-# CONFIG_NET_EMATCH is not set
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_TEXT=m
+CONFIG_NET_EMATCH_CANID=m
+CONFIG_NET_EMATCH_IPSET=m
+CONFIG_NET_EMATCH_IPT=m
CONFIG_NET_CLS_ACT=y
CONFIG_NET_ACT_POLICE=m
CONFIG_NET_ACT_GACT=m
@@ -1542,8 +1599,8 @@ CONFIG_NET_FLOW_LIMIT=y
#
# Network testing
#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_NET_DROP_MONITOR is not set
+CONFIG_NET_PKTGEN=m
+CONFIG_NET_DROP_MONITOR=m
CONFIG_HAMRADIO=y
#
@@ -1592,6 +1649,7 @@ CONFIG_CAN_MSCAN=m
# CONFIG_CAN_PEAK_PCIEFD is not set
# CONFIG_CAN_SJA1000 is not set
CONFIG_CAN_SOFTING=m
+# CONFIG_CAN_SOFTING_CS is not set
#
# CAN SPI interfaces
@@ -1618,6 +1676,7 @@ CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_CMTP=m
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
CONFIG_BT_LE=y
@@ -1650,10 +1709,13 @@ CONFIG_BT_HCIUART_INTEL=y
CONFIG_BT_HCIUART_BCM=y
CONFIG_BT_HCIUART_QCA=y
CONFIG_BT_HCIUART_AG6XX=y
-# CONFIG_BT_HCIUART_MRVL is not set
+CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIBCM203X=m
CONFIG_BT_HCIBPA10X=m
CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
CONFIG_BT_HCIVHCI=m
CONFIG_BT_MRVL=m
CONFIG_BT_MRVL_SDIO=m
@@ -1665,7 +1727,7 @@ CONFIG_AF_RXRPC=m
CONFIG_AF_RXRPC_IPV6=y
# CONFIG_AF_RXRPC_INJECT_LOSS is not set
# CONFIG_AF_RXRPC_DEBUG is not set
-# CONFIG_RXKAD is not set
+CONFIG_RXKAD=y
CONFIG_AF_KCM=m
CONFIG_STREAM_PARSER=y
CONFIG_FIB_RULES=y
@@ -1712,7 +1774,7 @@ CONFIG_RFKILL_INPUT=y
CONFIG_RFKILL_GPIO=m
CONFIG_NET_9P=m
CONFIG_NET_9P_VIRTIO=m
-# CONFIG_NET_9P_RDMA is not set
+CONFIG_NET_9P_RDMA=m
# CONFIG_NET_9P_DEBUG is not set
CONFIG_CAIF=m
# CONFIG_CAIF_DEBUG is not set
all these changes in the net/ namespace are probably not necessary
@@ -3209,20 +3334,92 @@ CONFIG_USB_NET_RNDIS_WLAN=m
CONFIG_WIMAX_I2400M=m
CONFIG_WIMAX_I2400M_USB=m
CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
-# CONFIG_WAN is not set
+CONFIG_WAN=y
+CONFIG_HDLC=m
+CONFIG_HDLC_RAW=m
+CONFIG_HDLC_RAW_ETH=m
+CONFIG_HDLC_CISCO=m
+CONFIG_HDLC_FR=m
+CONFIG_HDLC_PPP=m
+# CONFIG_HDLC_X25 is not set
+CONFIG_PCI200SYN=m
+CONFIG_WANXL=m
+# CONFIG_PC300TOO is not set
+CONFIG_FARSYNC=m
+CONFIG_DSCC4=m
+# CONFIG_DSCC4_PCISYNC is not set
+# CONFIG_DSCC4_PCI_RST is not set
+CONFIG_DLCI=m
+CONFIG_DLCI_MAX=8
+CONFIG_LAPBETHER=m
+CONFIG_X25_ASY=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m
CONFIG_IEEE802154_AT86RF230=m
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
CONFIG_IEEE802154_MRF24J40=m
-# CONFIG_IEEE802154_CC2520 is not set
+CONFIG_IEEE802154_CC2520=m
CONFIG_IEEE802154_ATUSB=m
CONFIG_IEEE802154_ADF7242=m
# CONFIG_IEEE802154_MCR20A is not set
CONFIG_IEEE802154_HWSIM=m
# CONFIG_NETDEVSIM is not set
CONFIG_NET_FAILOVER=m
-# CONFIG_ISDN is not set
+CONFIG_ISDN=y
+CONFIG_ISDN_I4L=m
+# CONFIG_ISDN_PPP is not set
+# CONFIG_ISDN_AUDIO is not set
+# CONFIG_ISDN_X25 is not set
+
+#
+# ISDN feature submodules
+#
+# CONFIG_ISDN_DIVERSION is not set
+
+#
+# ISDN4Linux hardware drivers
+#
+
+#
+# Passive cards
+#
+# CONFIG_ISDN_DRV_HISAX is not set
+CONFIG_ISDN_CAPI=m
+CONFIG_CAPI_TRACE=y
+# CONFIG_ISDN_CAPI_CAPI20 is not set
+# CONFIG_ISDN_CAPI_CAPIDRV is not set
+
+#
+# CAPI hardware drivers
+#
+# CONFIG_CAPI_AVM is not set
+# CONFIG_CAPI_EICON is not set
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_BASE is not set
+# CONFIG_GIGASET_M105 is not set
+# CONFIG_GIGASET_M101 is not set
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
CONFIG_NVM=y
# CONFIG_NVM_PBLK is not set
should not need these either
There's also a fair amount of changes in the filesystems section, we probably don't need stuff like BeFS or MINIX FS or QNX FS, JFFS2 could be useful for openfirmware
Anyway, I started picking the ppc64-gnu changes for staging. I will leave out the llvm ones as it's incomplete (and will need revbumping as llvm is always a cross-compiler) so i will do those myself separately
CONFIG_LOG_BUF_SHIFT=17
is probably to reduce memory footprint on low RAM machines.
CONFIG_CMD_LINE_BOOL
and the default CONFIG_CMD_LINE
make a difference in that they print the early (pre console on fb) stage info on the openfirmware fb. They can be overriden (also to empty) by the bootloader AFAIK.
I don't know why the CONFIG_PLUGIN_...
stuff always comes back. Yes, we should disable it to avoid breakage with compiler / kernel updates.
I/O schedulers can certainly be configured as elsewhere from what I know about them.
The CONFIG_ARCH_MMAP_RND_BITS
may be a compromise for low RAM machines again? I took them from Debian without investigating what they actually do. Do you know what their purpose is?
For CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
is this perhaps related to NVIDIA and 4k pages on their GPU? I haven't tried to run a kernel without that change and it is again taken from Debian verbatim.
For the net / namespace changes I have no clue whether this may be related to tftp, or netboot, or perhaps Apple hardware specific layers and protocols.
You are right: ISDN is probably no longer of any use to 99,99% of the possible users.
AFAIK all the mmap stuff is hardening, it should probably not affect things, so it should be safe to leave them as in ppc64le
config but not sure without testing. CONFIG_LOG_BUF_SHIFT
set to 19 should be 512kB, so nothing much to worry about from RAM standpoint...
The net namespace stuff is pretty much generic Debian changes, so it should be no problem to change them, as long as it's not obviously wrong - it includes stuff like 6lowpan changes and whatnot, we probably don't need any of that.
As for the cmdline, you are right. It behaves differently per architecture, it seems. On x86 it's the default stuff and any params passed by bootloader will be appended, on ppc this is not the case, if the bootloader supplies any arguments, the default cmdline will be ignored unless CONFIG_CMDLINE_FORCE
is used.
I can build a 4.19 kernel with CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
and see if lxdm
still runs.
I'll also keep CONFIG_LOG_BUF_SHIFT=19
for that try.
I also kinda wonder if it's worth it to enable all these legacy fbdev
drivers...
Well, people may put old video cards in their Macs' PCI, PCI-X or AGP slots. As long as they are just modules it doesn't really hurt to have them, doesn't it?
Well, we need it for nvidia, I guess, because nouveau
does not work right on ppc64 (the driver does not like 64k pages, but 64k pages are preferred on ppc64 because of lower overhead and so on, hence pretty much every distro defaulting to them) - some of these other old cards might not be worth it though, especially where an equivalent drm
driver exists instead.
but yeah, you are right. People could be using old matrox cards and so on in those. Probably no point in enabling them on LE, though :)
For the nouveau driver: it works fine AFAICT. See my Xorg.0.log
Interesting. Maybe it got fixed then.
OK. MMAP = 64k and LOG SHIFT = 19 work just fine so you can ditch those changes.
Okay. Can you try the net/ and other changes as well, and then update the branch? It's a fair amount of changes, so it's not something I can test here...
It will take some time. My girlfriend has precedence. I will look at updates later tonite
Yeah, take as long as you need - in the meantime I got most of the commits from your branch in staging and master, so I will PR these upstream now.
Another round of trimming down for linux-4.19/files/ppc64-dotconfig
and it still works.
I guess once this is settled you could simply derive linux5.0 from it yourself. I'm going to test 5.0 with accepting all default answers now.
yeah, i think i can easily do 5.0 myself
Hmm.. something is wrong with my branch, need to solve conflicts manually.
i think it's because master contains your commits but with fixes
Yes, something along this line. Perhaps I should simply drop the previous patch and add the current working ppc64-dotconfig instead.
ah, i haven't changed anything in the kernel commits so those should not conflict, only gcc and crosstoolchain
Ok, now it's there. I think we can also simplify archs="… ppc64*"
.
And if you think I should try to add, remove, or change more bits and test, please amend and lmk.
Yeah, now it's looking basically perfect. I will make some adjustments to it before PRing it in (I don't think we need filesystems like UnixWare VxFS or IRIX EFS or MINIX FS or QNX4FS for anything, especially considering the other configs don't have them) but that's something where I can be sure nothing will be broken... (i'll leave JFFS2 in, apparently it can be used with openfirmware)
i'll do the ppc64le changes while at it, and submit it in a single PR, also together with linux5.0
Great! If 5.0 also works for me, I'll take your gcc etc. changes and restart the ppc64 cross bootstrap + packages. It'll be interesting to see if this also works on the G4 of @stenstorp .
G4 is a 32-bit CPU, so that's a separate cfg...
D'OH! I missed that point :) BTW since ppc64 can run ppc binaries would it make sense to do something similar to x86_64/i686, i.e. multilib support? Overkill, huh?
In theory one can do multilib for ppc64 glibc, but since our setup is ELFv2 based (which makes it possibly the first distro to do so in production for glibc), I wonder how much gcc and the rest of the toolchain would cooperate... FWIW, this can always be investigated and done later, we're prepared for it (not enabling multilib explicitly for now, but the compiler is configured for biarch, i.e. it supports -m32
, just misses the multilib files; I did this in order to be able to compile grub-powerpc-ieee1275
as that needs to emit 32-bit code)
Ok, thank you for the info! And thank you for your fantastic work without which I would have had no chance to reach the point where I am now. 5.0.9 runs perfectly fine. I'll restart the ppc64 cross-bootstrap and be back tomorrow.
That's good to hear, also no problem, your G5 testing is a big help as well otherwise I'd have no way to test whether the big endian stuff actually works on older hw - Void currently has a good amount of potential to establish itself on the architecture for both older hardware (because lightweight and flexible) and modern hardware (because it's a fresh legacy-free port, which allows us to do neat things other can't, and beyond the big established distros - aka debian/ubuntu/fedora/gentoo there is barely anything)
I noticed there was some git-caused brokenness in the master branch (it differed from staging for whatever reason). I had to reset it to be the same as staging (the history was starting to get pretty dirty anyway, now it's simple and clean), which means your branch will not rebase cleanly, i'd suggest something like this
git checkout master
git checkout -b temp
git cherry-pick <commit range currently in your branch>
git checkout ppc64-gnu
git reset --hard temp
git push --force ppc64-gnu
git branch -D temp
I'll be more careful with keeping it identical to staging from now on.
or maybe you can just do nothing, there is just the kernel stuff and llvm left anyway and i'll be PRing both later... then we can delete the branch and be done with it
Yes, we can just delete the branch and I can keep the changes local until they are in a PR.
Hm, I just wanted to go deal with the kernel configs and I noticed you deleted the branch, and I have an older copy. Could you paste the up to date 4.19 dotconfig somewhere, so I can work with it?
Oops, I thought you had a copy of that branch somewhere. Here's the most recent ppc64-dotconfig
Current status: WIP, broken on G5, should work on modern hardware