The Linux kernel sources in the Roku Open Source Software release contain some incredibly broken symlinks. Somehow, the kernel's directory name ends up overwriting part of the symlink target's name, causing the symlink to be invalid.
For the `linux-3.10.108-grsec-rt122` kernel sources, this results in the following broken symlinks:
./include/linux/autoconf.h -> linux-3.10.108-grsec-rt122./generated/autoconf.h
./include/trace/events/_non_rtlog_printk.h -> linux-3.10.108-grsec-rt122rintk.h
./drivers/mstar2 -> linux-3.10.108-grsec-rt122./mstar2
./arch/arm/arm-boards -> linux-3.10.108-grsec-rt122./../mstar2/drv/cpu/arm
./arch/arm/configs/t14_elpaso2k_defconfig -> linux-3.10.108-grsec-rt122./../../elpaso2k.config
./arch/arm/configs/t14_midland_defconfig -> linux-3.10.108-grsec-rt122./../../midland.config
./arch/arm/configs/t10_longview_defconfig -> linux-3.10.108-grsec-rt122./../../longview.config
./arch/arm/boot/dts/include/dt-bindings -> linux-3.10.108-grsec-rt122./../../../../include/dt-bindings
./arch/mips/Kconfig_kdrv -> linux-3.10.108-grsec-rt122./../mstar2/Kconfig
./arch/mips/mips-boards -> linux-3.10.108-grsec-rt122./../mstar2/drv/cpu/mips
./arch/arm64/arm-boards -> linux-3.10.108-grsec-rt122./../mstar2/drv/cpu/arm64
./arch/arm64/boot/dts/include/dt-bindings -> linux-3.10.108-grsec-rt122./../../../../include/dt-bindings
While the symlink targets may appear reasonable at first glance, they are in fact, invalid. (With `linux-3.10.108-grsec-rt122rintk.h` being a particularly broken result.)