This commit is contained in:
Theodore Dubois
2021-07-11 23:21:50 -07:00
parent ec76fd175a
commit 9a349f5a55
10 changed files with 131 additions and 98 deletions
+1
View File
@@ -8,4 +8,5 @@ INFOPLIST_PREFIX_HEADER = $(BUILT_PRODUCTS_DIR)/infoplisticons.h
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon
CODE_SIGN_ENTITLEMENTS = app/iSH.entitlements
HEADER_SEARCH_PATHS = $(inherited) $(SRCROOT) $(SRCROOT)/deps/libarchive/libarchive
OTHER_LDFLAGS = -ObjC $(LINUX_APP_LDFLAGS)
+8
View File
@@ -12,10 +12,18 @@
@property (strong, nonatomic) UIWindow *window;
- (void)exitApp;
#if !ISH_LINUX
+ (int)bootError;
#else
+ (NSString *)panicMessage;
#endif
+ (void)maybePresentStartupMessageOnViewController:(UIViewController *)vc;
@end
#if !ISH_LINUX
extern NSString *const ProcessExitedNotification;
#else
extern NSString *const KernelPanicNotification;
#endif
+16
View File
@@ -40,6 +40,7 @@
@end
#if !ISH_LINUX
static void ios_handle_exit(struct task *task, int code) {
// we are interested in init and in children of init
// this is called with pids_lock as an implementation side effect, please do not cite as an example of good API design
@@ -54,6 +55,7 @@ static void ios_handle_exit(struct task *task, int code) {
@"code": @(code)}];
});
}
#endif
// Put the abort message in the thread name so it gets included in the crash dump
static void ios_handle_die(const char *msg) {
@@ -352,4 +354,18 @@ void NetworkReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkReach
@end
#if ISH_LINUX
void ShowPanicMessage(char *message, void (^completion)(void)) {
dispatch_async(dispatch_get_main_queue(), ^{
completion();
});
}
#endif
#if !ISH_LINUX
NSString *const ProcessExitedNotification = @"ProcessExitedNotification";
#else
NSString *const KernelPanicNotification = @"KernelPanicNotification";
#endif
+26 -2
View File
@@ -5,12 +5,36 @@
// Created by Theodore Dubois on 7/3/21.
//
#include "LinuxInterop.h"
#include <linux/start_kernel.h>
#include <string.h>
#include <linux/kernel.h>
#include <linux/notifier.h>
#include <linux/string.h>
#include <linux/completion.h>
extern void run_kernel(void);
void actuate_kernel(char *cmdline) {
void actuate_kernel(const char *cmdline) {
strcpy(boot_command_line, cmdline);
run_kernel();
}
static int panic_report(struct notifier_block *nb, unsigned long action, void *data) {
const char *message = data;
DECLARE_COMPLETION(panic_report_done);
ReportPanic(message, ^{
// TODO: complete(&panic_report_done); in irq
});
wait_for_completion(&panic_report_done);
return 0;
}
static struct notifier_block panic_report_block = {
.notifier_call = panic_report,
.priority = INT_MAX,
};
static int __init panic_report_init(void) {
atomic_notifier_chain_register(&panic_notifier_list, &panic_report_block);
return 0;
}
__initcall(panic_report_init);
+5 -1
View File
@@ -8,6 +8,10 @@
#ifndef LinuxInterop_h
#define LinuxInterop_h
void actuate_kernel(char *cmdline);
void call_in_kernel_irq(void (^block)(void));
void ReportPanic(const char *message, void (^completion)(void));
void actuate_kernel(const char *cmdline);
#endif /* LinuxInterop_h */
+1
View File
@@ -1,3 +1,4 @@
SKIP_INSTALL = YES
EXECUTABLE_PREFIX =
PRODUCT_NAME = $(TARGET_NAME)
VERSIONING_SYSTEM =
+8 -3
View File
@@ -1,6 +1,11 @@
#include "StaticLib.xcconfig"
HEADER_SEARCH_PATHS = $(SRCROOT)/deps/linux/arch/ish/include $(MESON_BUILD_DIR)/deps/linux/arch/ish/include/generated $(SRCROOT)/deps/linux/include $(MESON_BUILD_DIR)/deps/linux/arch/ish/include/generated $(SRCROOT)/deps/linux/arch/ish/include/uapi $(MESON_BUILD_DIR)/deps/linux/arch/ish/include/generated/uapi $(SRCROOT)/deps/linux/include/uapi $(MESON_BUILD_DIR)/deps/linux/arch/ish/include/generated/uapi
LINK_WITH_STANDARD_LIBRARIES = NO
HEADER_SEARCH_PATHS = $(SRCROOT)/deps/linux/arch/ish/include $(MESON_BUILD_DIR)/deps/linux/arch/ish/include/generated $(SRCROOT)/deps/linux/include $(MESON_BUILD_DIR)/deps/linux/include $(SRCROOT)/deps/linux/arch/ish/include/uapi $(MESON_BUILD_DIR)/deps/linux/arch/ish/include/generated/uapi $(SRCROOT)/deps/linux/include/uapi $(MESON_BUILD_DIR)/deps/linux/arch/ish/include/generated/uapi $(SRCROOT)/deps/linux/arch/ish/include/ishemu $(SRCROOT)
GCC_PREPROCESSOR_DEFINITIONS = __KERNEL__
OTHER_CFLAGS = -U__weak
OTHER_CFLAGS = -U__weak -nostdlibinc -include $(SRCROOT)/deps/linux/include/linux/kconfig.h -include $(SRCROOT)/deps/linux/include/linux/compiler_types.h
LINK_WITH_STANDARD_LIBRARIES = NO
// disable modules because it results in clashes between linux and clang headers
CLANG_ENABLE_MODULES = NO
// these warnings are tripped by linux
GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO
GCC_WARN_64_TO_32_BIT_CONVERSION = NO
+17 -17
View File
@@ -116,10 +116,17 @@
- (void)awakeFromNib {
[super awakeFromNib];
#if !ISH_LINUX
[NSNotificationCenter.defaultCenter addObserver:self
selector:@selector(processExited:)
name:ProcessExitedNotification
object:nil];
#else
[NSNotificationCenter.defaultCenter addObserver:self
selector:@selector(kernelPanicked:)
name:KernelPanicNotification
object:nil];
#endif
}
- (void)viewDidAppear:(BOOL)animated {
@@ -178,6 +185,7 @@
return 0;
}
#if !ISH_LINUX
- (void)processExited:(NSNotification *)notif {
int pid = [notif.userInfo[@"pid"] intValue];
if (pid != self.sessionPid)
@@ -197,11 +205,16 @@
return;
}
}
#if !ISH_LINUX
current = NULL; // it's been freed
#endif
[self startNewSession];
}
#endif
#if ISH_LINUX
- (void)kernelPanicked:(NSNotification *)notif {
[UIAlertController alert];
}
#endif
- (void)showMessage:(NSString *)message subtitle:(NSString *)subtitle {
dispatch_async(dispatch_get_main_queue(), ^{
@@ -299,21 +312,6 @@
[self _updateStyleFromPreferences:YES];
}
- (void)ishExited:(NSNotification *)notification {
[self performSelectorOnMainThread:@selector(displayExitThing) withObject:nil waitUntilDone:YES];
}
- (void)displayExitThing {
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"attempted to kill init" message:nil preferredStyle:UIAlertControllerStyleAlert];
[alert addAction:[UIAlertAction actionWithTitle:@"exit" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
id delegate = [UIApplication sharedApplication].delegate;
[delegate exitApp];
}]];
if ([UserPreferences.shared hasChangedLaunchCommand])
[alert addAction:[UIAlertAction actionWithTitle:@"i typed the init command wrong, let me fix it" style:UIAlertActionStyleDefault handler:nil]];
[self presentViewController:alert animated:YES completion:nil];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"embed"]) {
// You might want to check if this is your embed segue here
@@ -463,8 +461,10 @@
@interface BarView : UIInputView
@property (weak) IBOutlet TerminalViewController *terminalViewController;
@property (nonatomic) IBInspectable BOOL allowsSelfSizing;
@end
@implementation BarView
@dynamic allowsSelfSizing;
- (void)layoutSubviews {
[self.terminalViewController resizeBar];
+1 -1
View File
@@ -1,4 +1,4 @@
#!/usr/bin/env python3
#!/usr/bin/env python3 -u
import sys
import re
import os
+48 -74
View File
@@ -356,15 +356,6 @@
name = "Embed App Extensions";
runOnlyForDeploymentPostprocessing = 0;
};
BBECF3A02691314C00DEC937 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "include/$(PRODUCT_NAME)";
dstSubfolderSpec = 16;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
BBEF1997268066D1001225BD /* Embed App Extensions */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
@@ -708,20 +699,6 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
BBECF39F2691314C00DEC937 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
BBEF191B26806364001225BD /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
BBEF196F268066D1001225BD /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@@ -1415,8 +1392,6 @@
buildConfigurationList = BBECF3A82691314C00DEC937 /* Build configuration list for PBXNativeTarget "libiSHLinux" */;
buildPhases = (
BBECF39E2691314C00DEC937 /* Sources */,
BBECF39F2691314C00DEC937 /* Frameworks */,
BBECF3A02691314C00DEC937 /* CopyFiles */,
);
buildRules = (
);
@@ -1449,7 +1424,6 @@
buildConfigurationList = BBEF192626806364001225BD /* Build configuration list for PBXNativeTarget "libiSHApp" */;
buildPhases = (
BBEF191A26806364001225BD /* Sources */,
BBEF191B26806364001225BD /* Frameworks */,
);
buildRules = (
);
@@ -2173,11 +2147,11 @@
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
497F6CE8254E5E4C00C82F46 /* Debug */ = {
497F6CE8254E5E4C00C82F46 /* Debugfuck */ = {
isa = XCBuildConfiguration;
buildSettings = {
};
name = Debug;
name = Debugfuck;
};
497F6CE9254E5E4C00C82F46 /* Release */ = {
isa = XCBuildConfiguration;
@@ -2185,7 +2159,7 @@
};
name = Release;
};
497F6D4C254E605F00C82F46 /* Debug */ = {
497F6D4C254E605F00C82F46 /* Debugfuck */ = {
isa = XCBuildConfiguration;
buildSettings = {
ENABLE_HARDENED_RUNTIME = YES;
@@ -2194,7 +2168,7 @@
SDKROOT = macosx;
SUPPORTED_PLATFORMS = macosx;
};
name = Debug;
name = Debugfuck;
};
497F6D4D254E605F00C82F46 /* Release */ = {
isa = XCBuildConfiguration;
@@ -2207,11 +2181,11 @@
};
name = Release;
};
BB13F7CC200ACC31003D1C4D /* Debug */ = {
BB13F7CC200ACC31003D1C4D /* Debugfuck */ = {
isa = XCBuildConfiguration;
buildSettings = {
};
name = Debug;
name = Debugfuck;
};
BB13F7CD200ACC31003D1C4D /* Release */ = {
isa = XCBuildConfiguration;
@@ -2219,11 +2193,11 @@
};
name = Release;
};
BB13F7D2200ACCA2003D1C4D /* Debug */ = {
BB13F7D2200ACCA2003D1C4D /* Debugfuck */ = {
isa = XCBuildConfiguration;
buildSettings = {
};
name = Debug;
name = Debugfuck;
};
BB13F7D3200ACCA2003D1C4D /* Release */ = {
isa = XCBuildConfiguration;
@@ -2231,12 +2205,12 @@
};
name = Release;
};
BB13F7E3200AD81E003D1C4D /* Debug */ = {
BB13F7E3200AD81E003D1C4D /* Debugfuck */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = BBFB2CDA259028DC00545EAB /* StaticLib.xcconfig */;
buildSettings = {
};
name = Debug;
name = Debugfuck;
};
BB13F7E4200AD81E003D1C4D /* Release */ = {
isa = XCBuildConfiguration;
@@ -2245,12 +2219,12 @@
};
name = Release;
};
BB21A16B2689041500BD19B4 /* Debug */ = {
BB21A16B2689041500BD19B4 /* Debugfuck */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = BBFB2CDA259028DC00545EAB /* StaticLib.xcconfig */;
buildSettings = {
};
name = Debug;
name = Debugfuck;
};
BB21A16C2689041500BD19B4 /* DebugLinux */ = {
isa = XCBuildConfiguration;
@@ -2273,7 +2247,7 @@
};
name = ReleaseLinux;
};
BB415923255EF9E300E0950C /* Debug */ = {
BB415923255EF9E300E0950C /* Debugfuck */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = BB0B86D52587009D00208600 /* iOS.xcconfig */;
buildSettings = {
@@ -2290,7 +2264,7 @@
SWIFT_VERSION = 5.0;
TEST_TARGET_NAME = iSH;
};
name = Debug;
name = Debugfuck;
};
BB415924255EF9E300E0950C /* Release */ = {
isa = XCBuildConfiguration;
@@ -2310,11 +2284,11 @@
};
name = Release;
};
BB4A922524ED9402002F5A96 /* Debug */ = {
BB4A922524ED9402002F5A96 /* Debugfuck */ = {
isa = XCBuildConfiguration;
buildSettings = {
};
name = Debug;
name = Debugfuck;
};
BB4A922624ED9402002F5A96 /* Release */ = {
isa = XCBuildConfiguration;
@@ -2322,14 +2296,14 @@
};
name = Release;
};
BB792B4A1F96D8E000FFB7A4 /* Debug */ = {
BB792B4A1F96D8E000FFB7A4 /* Debugfuck */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = BB0B85A42586F1CB00208600 /* ProjectDebug.xcconfig */;
buildSettings = {
CURRENT_PROJECT_VERSION = 177;
DEVELOPMENT_TEAM = CK5SXRTBR7;
};
name = Debug;
name = Debugfuck;
};
BB792B4B1F96D8E000FFB7A4 /* Release */ = {
isa = XCBuildConfiguration;
@@ -2340,12 +2314,12 @@
};
name = Release;
};
BB792B641F96D90D00FFB7A4 /* Debug */ = {
BB792B641F96D90D00FFB7A4 /* Debugfuck */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = BB0B86CD2586FD8800208600 /* App.xcconfig */;
buildSettings = {
};
name = Debug;
name = Debugfuck;
};
BB792B651F96D90D00FFB7A4 /* Release */ = {
isa = XCBuildConfiguration;
@@ -2464,7 +2438,7 @@
};
name = DebugLinux;
};
BB88F4A02154760800A341FD /* Debug */ = {
BB88F4A02154760800A341FD /* Debugfuck */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = BB0B86D52587009D00208600 /* iOS.xcconfig */;
buildSettings = {
@@ -2474,7 +2448,7 @@
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
};
name = Debug;
name = Debugfuck;
};
BB88F4A12154760800A341FD /* Release */ = {
isa = XCBuildConfiguration;
@@ -2488,13 +2462,13 @@
};
name = Release;
};
BBECF3A92691314C00DEC937 /* Debug */ = {
BBECF3A92691314C00DEC937 /* Debugfuck */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = BBECF3BA2691379100DEC937 /* StaticLibLinux.xcconfig */;
buildSettings = {
LINK_WITH_STANDARD_LIBRARIES = NO;
};
name = Debug;
name = Debugfuck;
};
BBECF3AA2691314C00DEC937 /* DebugLinux */ = {
isa = XCBuildConfiguration;
@@ -2520,12 +2494,12 @@
};
name = ReleaseLinux;
};
BBECF3B4269136E100DEC937 /* Debug */ = {
BBECF3B4269136E100DEC937 /* Debugfuck */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = BBFB2CDA259028DC00545EAB /* StaticLib.xcconfig */;
buildSettings = {
};
name = Debug;
name = Debugfuck;
};
BBECF3B5269136E100DEC937 /* DebugLinux */ = {
isa = XCBuildConfiguration;
@@ -2548,12 +2522,12 @@
};
name = ReleaseLinux;
};
BBEF192426806364001225BD /* Debug */ = {
BBEF192426806364001225BD /* Debugfuck */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = BBEF192C26806546001225BD /* AppLib.xcconfig */;
buildSettings = {
};
name = Debug;
name = Debugfuck;
};
BBEF192526806364001225BD /* Release */ = {
isa = XCBuildConfiguration;
@@ -2562,12 +2536,12 @@
};
name = Release;
};
BBEF199A268066D1001225BD /* Debug */ = {
BBEF199A268066D1001225BD /* Debugfuck */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = BB0B86CD2586FD8800208600 /* App.xcconfig */;
buildSettings = {
};
name = Debug;
name = Debugfuck;
};
BBEF199B268066D1001225BD /* Release */ = {
isa = XCBuildConfiguration;
@@ -2685,12 +2659,12 @@
};
name = ReleaseLinux;
};
BBFB2C592590257E00545EAB /* Debug */ = {
BBFB2C592590257E00545EAB /* Debugfuck */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = BBFB2CDA259028DC00545EAB /* StaticLib.xcconfig */;
buildSettings = {
};
name = Debug;
name = Debugfuck;
};
BBFB2C5A2590257E00545EAB /* Release */ = {
isa = XCBuildConfiguration;
@@ -2705,7 +2679,7 @@
497F6CEA254E5E4C00C82F46 /* Build configuration list for PBXNativeTarget "MakeXcodeAutoCompleteWork" */ = {
isa = XCConfigurationList;
buildConfigurations = (
497F6CE8254E5E4C00C82F46 /* Debug */,
497F6CE8254E5E4C00C82F46 /* Debugfuck */,
BB7F62102688EAB5003C0220 /* DebugLinux */,
497F6CE9254E5E4C00C82F46 /* Release */,
BBEF19B626806D1F001225BD /* ReleaseLinux */,
@@ -2716,7 +2690,7 @@
497F6D4B254E605F00C82F46 /* Build configuration list for PBXNativeTarget "ish" */ = {
isa = XCConfigurationList;
buildConfigurations = (
497F6D4C254E605F00C82F46 /* Debug */,
497F6D4C254E605F00C82F46 /* Debugfuck */,
BB7F62112688EAB5003C0220 /* DebugLinux */,
497F6D4D254E605F00C82F46 /* Release */,
BBEF19B726806D1F001225BD /* ReleaseLinux */,
@@ -2727,7 +2701,7 @@
BB13F7CB200ACC31003D1C4D /* Build configuration list for PBXLegacyTarget "Meson" */ = {
isa = XCConfigurationList;
buildConfigurations = (
BB13F7CC200ACC31003D1C4D /* Debug */,
BB13F7CC200ACC31003D1C4D /* Debugfuck */,
BB7F620B2688EAB5003C0220 /* DebugLinux */,
BB13F7CD200ACC31003D1C4D /* Release */,
BBEF19B126806D1F001225BD /* ReleaseLinux */,
@@ -2738,7 +2712,7 @@
BB13F7D1200ACCA2003D1C4D /* Build configuration list for PBXLegacyTarget "Ninja" */ = {
isa = XCConfigurationList;
buildConfigurations = (
BB13F7D2200ACCA2003D1C4D /* Debug */,
BB13F7D2200ACCA2003D1C4D /* Debugfuck */,
BB7F620C2688EAB5003C0220 /* DebugLinux */,
BB13F7D3200ACCA2003D1C4D /* Release */,
BBEF19B226806D1F001225BD /* ReleaseLinux */,
@@ -2749,7 +2723,7 @@
BB13F7E2200AD81E003D1C4D /* Build configuration list for PBXNativeTarget "libish" */ = {
isa = XCConfigurationList;
buildConfigurations = (
BB13F7E3200AD81E003D1C4D /* Debug */,
BB13F7E3200AD81E003D1C4D /* Debugfuck */,
BB7F620D2688EAB5003C0220 /* DebugLinux */,
BB13F7E4200AD81E003D1C4D /* Release */,
BBEF19B326806D1F001225BD /* ReleaseLinux */,
@@ -2760,7 +2734,7 @@
BB21A16A2689041500BD19B4 /* Build configuration list for PBXNativeTarget "libfakefs" */ = {
isa = XCConfigurationList;
buildConfigurations = (
BB21A16B2689041500BD19B4 /* Debug */,
BB21A16B2689041500BD19B4 /* Debugfuck */,
BB21A16C2689041500BD19B4 /* DebugLinux */,
BB21A16D2689041500BD19B4 /* Release */,
BB21A16E2689041500BD19B4 /* ReleaseLinux */,
@@ -2771,7 +2745,7 @@
BB415925255EF9E300E0950C /* Build configuration list for PBXNativeTarget "iSHUITests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
BB415923255EF9E300E0950C /* Debug */,
BB415923255EF9E300E0950C /* Debugfuck */,
BB7F620A2688EAB5003C0220 /* DebugLinux */,
BB415924255EF9E300E0950C /* Release */,
BBEF19B026806D1F001225BD /* ReleaseLinux */,
@@ -2782,7 +2756,7 @@
BB4A922424ED9402002F5A96 /* Build configuration list for PBXAggregateTarget "iSH pre" */ = {
isa = XCConfigurationList;
buildConfigurations = (
BB4A922524ED9402002F5A96 /* Debug */,
BB4A922524ED9402002F5A96 /* Debugfuck */,
BB7F620F2688EAB5003C0220 /* DebugLinux */,
BB4A922624ED9402002F5A96 /* Release */,
BBEF19B526806D1F001225BD /* ReleaseLinux */,
@@ -2793,7 +2767,7 @@
BB792B491F96D8E000FFB7A4 /* Build configuration list for PBXProject "iSH" */ = {
isa = XCConfigurationList;
buildConfigurations = (
BB792B4A1F96D8E000FFB7A4 /* Debug */,
BB792B4A1F96D8E000FFB7A4 /* Debugfuck */,
BB7F62052688EAB5003C0220 /* DebugLinux */,
BB792B4B1F96D8E000FFB7A4 /* Release */,
BBEF19AB26806D1F001225BD /* ReleaseLinux */,
@@ -2804,7 +2778,7 @@
BB792B661F96D90D00FFB7A4 /* Build configuration list for PBXNativeTarget "iSH" */ = {
isa = XCConfigurationList;
buildConfigurations = (
BB792B641F96D90D00FFB7A4 /* Debug */,
BB792B641F96D90D00FFB7A4 /* Debugfuck */,
BB7F62062688EAB5003C0220 /* DebugLinux */,
BB792B651F96D90D00FFB7A4 /* Release */,
BBEF19AC26806D1F001225BD /* ReleaseLinux */,
@@ -2815,7 +2789,7 @@
BB88F4A22154760800A341FD /* Build configuration list for PBXNativeTarget "iSHFileProvider" */ = {
isa = XCConfigurationList;
buildConfigurations = (
BB88F4A02154760800A341FD /* Debug */,
BB88F4A02154760800A341FD /* Debugfuck */,
BB7F62092688EAB5003C0220 /* DebugLinux */,
BB88F4A12154760800A341FD /* Release */,
BBEF19AF26806D1F001225BD /* ReleaseLinux */,
@@ -2826,7 +2800,7 @@
BBECF3A82691314C00DEC937 /* Build configuration list for PBXNativeTarget "libiSHLinux" */ = {
isa = XCConfigurationList;
buildConfigurations = (
BBECF3A92691314C00DEC937 /* Debug */,
BBECF3A92691314C00DEC937 /* Debugfuck */,
BBECF3AA2691314C00DEC937 /* DebugLinux */,
BBECF3AB2691314C00DEC937 /* Release */,
BBECF3AC2691314C00DEC937 /* ReleaseLinux */,
@@ -2837,7 +2811,7 @@
BBECF3B3269136E100DEC937 /* Build configuration list for PBXNativeTarget "liblinux" */ = {
isa = XCConfigurationList;
buildConfigurations = (
BBECF3B4269136E100DEC937 /* Debug */,
BBECF3B4269136E100DEC937 /* Debugfuck */,
BBECF3B5269136E100DEC937 /* DebugLinux */,
BBECF3B6269136E100DEC937 /* Release */,
BBECF3B7269136E100DEC937 /* ReleaseLinux */,
@@ -2848,7 +2822,7 @@
BBEF192626806364001225BD /* Build configuration list for PBXNativeTarget "libiSHApp" */ = {
isa = XCConfigurationList;
buildConfigurations = (
BBEF192426806364001225BD /* Debug */,
BBEF192426806364001225BD /* Debugfuck */,
BB7F62082688EAB5003C0220 /* DebugLinux */,
BBEF192526806364001225BD /* Release */,
BBEF19AE26806D1F001225BD /* ReleaseLinux */,
@@ -2859,7 +2833,7 @@
BBEF1999268066D1001225BD /* Build configuration list for PBXNativeTarget "iSH+Linux" */ = {
isa = XCConfigurationList;
buildConfigurations = (
BBEF199A268066D1001225BD /* Debug */,
BBEF199A268066D1001225BD /* Debugfuck */,
BB7F62072688EAB5003C0220 /* DebugLinux */,
BBEF199B268066D1001225BD /* Release */,
BBEF19AD26806D1F001225BD /* ReleaseLinux */,
@@ -2870,7 +2844,7 @@
BBFB2C582590257E00545EAB /* Build configuration list for PBXNativeTarget "libish_emu" */ = {
isa = XCConfigurationList;
buildConfigurations = (
BBFB2C592590257E00545EAB /* Debug */,
BBFB2C592590257E00545EAB /* Debugfuck */,
BB7F620E2688EAB5003C0220 /* DebugLinux */,
BBFB2C5A2590257E00545EAB /* Release */,
BBEF19B426806D1F001225BD /* ReleaseLinux */,