[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 03/21] acpi: Prevent GPL-only code from seeping into non-GPL binaries
>>> On 23.09.16 at 16:23, <boris.ostrovsky@xxxxxxxxxx> wrote: > On 09/23/2016 05:18 AM, Jan Beulich wrote: >> >>> @@ -36,18 +37,25 @@ ssdt_s3.h ssdt_s4.h ssdt_pm.h ssdt_tpm.h: %.h: %.asl >>> iasl >>> mk_dsdt: mk_dsdt.c >>> $(HOSTCC) $(HOSTCFLAGS) $(CFLAGS_xeninclude) -o $@ mk_dsdt.c >>> >>> -dsdt_anycpu_qemu_xen.asl: dsdt.asl dsdt_acpi_info.asl mk_dsdt >>> +ifeq ($(GPL),y) >>> +dsdt_anycpu_qemu_xen.asl: dsdt.asl dsdt_acpi_info.asl gpl/mk_dsdt_gpl.sh >>> mk_dsdt >>> awk 'NR > 1 {print s} {s=$$0}' $< > $@.$(TMP_SUFFIX) >>> + # Strip license comment >>> + sed -i '1,/\*\//{/\/\*/,/\*\//d}' $@.$(TMP_SUFFIX) >>> + ./gpl/mk_dsdt_gpl.sh >> $@.$(TMP_SUFFIX) >> I don't think the leading ./ is necessary here, ... >> >>> cat dsdt_acpi_info.asl >> $@.$(TMP_SUFFIX) >>> ./mk_dsdt --debug=$(debug) --dm-version qemu-xen >> $@.$(TMP_SUFFIX) >> ... other than e.g. here. > > What is the difference between the two? The latter would then lack any directory components, and hence would become subject to lookup through $PATH, which would fail if . is not included in it (and which would possibly do the wrong thing even if it was). >>> --- /dev/null >>> +++ b/tools/firmware/hvmloader/acpi/gpl/mk_dsdt_gpl.sh >>> @@ -0,0 +1,110 @@ >>> +# This program is free software; you can redistribute it and/or modify it >>> +# under the terms and conditions of the GNU General Public License, >>> +# version 2, as published by the Free Software Foundation. >>> +# >>> +# This program is distributed in the hope it will be useful, but WITHOUT >>> +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or >>> +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for >>> +# more details. >>> +# >>> +# You should have received a copy of the GNU General Public License along >>> with >>> +# this program; If not, see <http://www.gnu.org/licenses/>. >>> +# >>> + >>> +printf "\n /* Beginning of GPL-only code */\n\n" >>> + >>> +printf " /* _S3 and _S4 are in separate SSDTs */\n" >>> +printf " Name (\_S5, Package (0x04) {\n" >>> +printf " 0x00, /* PM1a_CNT.SLP_TYP */\n" >>> +printf " 0x00, /* PM1b_CNT.SLP_TYP */\n" >>> +printf " 0x00, /* reserved */\n" >>> +printf " 0x00 /* reserved */\n" >>> +printf " })\n" >>> + >>> +printf " Name(PICD, 0)\n" >>> +printf " Method(_PIC, 1) {\n" >>> +printf " Store(Arg0, PICD)\n" >>> +printf " }\n" >> Wouldn't this be better readable with "echo", avoiding all the \n >> instances? Actually this seems to even apply to most if not >> everything further down, as so far I didn't spot a case where >> you actually pass anything other than just a format string. > > Format string is the only reason. There are a couple of instances where > output is formatted and I felt that having both echo and printf would > feel inconsistent. Hmm, I think avoiding the many \n would warrant this slight inconsistency. >>> +# PCI-ISA link definitions >>> + >>> +# BUFA: List of ISA IRQs available for linking to PCI INTx. >>> +printf " Scope ( \_SB.PCI0 ) {\n" >>> +printf " Name ( BUFA, ResourceTemplate() { IRQ(Level, ActiveLow, >>> Shared) { 5, 10, 11 } } )\n" >>> +# BUFB: IRQ descriptor for returning from link-device _CRS methods. >>> +printf " Name ( BUFB, Buffer() { 0x23, 0x00, 0x00, 0x18, 0x79, 0 } >>> )\n" >>> +printf " CreateWordField ( BUFB, 0x01, IRQV )\n" >>> + >>> +links=(A B C D) >> Is this portable? > > I heard that associative arrays sometimes have portability issues but > this is a regular one. FWIW this runs on a 2009 Fedora12. > > Would 'declare -a links' help? I don't know - honestly I'm not a shell script expert. All I can say is that I wasn't able to find the construct above e.g. in SUS v6. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |