summary refs log tree commit diff stats
path: root/results/classifier/zero-shot/118/none/1027
blob: 6e4a0ae32f570617865995fe769918d4d1ce8b56 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
files: 0.752
device: 0.700
graphic: 0.636
network: 0.613
ppc: 0.600
architecture: 0.581
performance: 0.578
kernel: 0.517
semantic: 0.507
permissions: 0.503
mistranslation: 0.502
vnc: 0.499
arm: 0.487
socket: 0.453
debug: 0.445
risc-v: 0.441
register: 0.440
PID: 0.421
VMM: 0.412
i386: 0.396
peripherals: 0.393
TCG: 0.375
user-level: 0.373
KVM: 0.293
boot: 0.288
hypervisor: 0.275
virtual: 0.222
x86: 0.210
assembly: 0.127

Executables should have embedded plist on macOS
Description of problem:
QEMU binaries on macOS should have an embedded property list (`plist`).

The bundle identifier of an application, as well as many other settings, are usually not set programmatically but through an `Info.plist` file found within the application bundle (`.app`) which is a property list (basically a settings file in XML format). 

When liking a command line binary, you can tell the linker to embed such a property list inside the binary and the system will respect that when loading the binary. Having an embedded `Info.plist` is highly recommended for all macOS applications, even command line tools, as many system features will not work correctly (or are not even possible) unless they have one (not in all places the binary name will work instead of a bundle identifier).

All you need to do is writing a [plist file by hand](https://docs.transifex.com/formats/apple-plist) (for a list of available keys, see [Apple's documentation](https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Introduction/Introduction.html)) and then tell the liker to embed it into the binary:

```
-sectcreate __TEXT __info_plist YourPlistFile.plist
```

This makes it far easier to set app specific settings correctly, as in #334 for example. Also things like sudden termination can be disabled completely that way without a single line of code.