lds

lds ----linux下的通用链接脚本

社会主义新天地 提交于 2020-03-07 23:37:33
ELF(Executable and Linkable Format)格式,linux平台下十分常见的可执行、可连接文件。 输出section的丢弃: 例子,.foo { *(.foo) },如果没有任何一个输入文件包含.foo section,那么连接器将不会创建.foo输出section。但是如果在这些输出section描述内包含了非输入section描述命令(如符号 赋值语句),那么连接器将总是创建该输出section。 有一个特殊的输出section,名为/DISCARD/,被该section引用的任何输入section将不会出现在输出文件内,这就是DISCARD的意思吧。如果/DISCARD/ section被它自己引用呢?想想看。 /DISCARD/ : { *(.discard) } SECTIONS { . = 0x00; //链接定位器在0x00处 .text : { *(.text) } //所有文件的代码段链接成一个.text的代码段 .rodata ALIGN(4) : {*(.rodata)} .data ALIGN(4) : { *(.data) } //所有文件的数据段链接成一个.text的数据段,4字节对齐 .bss ALIGN(4) : { *(.bss) *(COMMON) } } //说明:.bss段---链接完后,占用的内存释放,不同于

__attribute__((section("name"))) study again

北慕城南 提交于 2020-01-24 06:02:39
目录 code tree source code init.h init.c gen-ld.sh init-section.lds ld.lds main.c module1_init.c module2_init.c makefile code tree # tree . ├── init │ ├── gen-ld.sh │ ├── init.c │ ├── init.h │ ├── init-section.lds │ ├── ld.lds │ └── ld.lds.backup ├── main.c ├── makefile ├── module1 │ └── module1_init.c └── module2 └── module2_init.c 3 directories, 10 files source code init.h #ifndef __INIT_H #define __INIT_H 1 #ifdef __INIT_LOG #include <stdio.h> #define init_log(fmt...) ({ \ int n = 0;\ n+=fprintf(stdout, "[INIT] %s %s:%d ", __FILE__, __func__, __LINE__);\ n+=fprintf(stdout, fmt);\ n;\ }) #else

Setting up SSL in Active Directory how-to

让人想犯罪 __ 提交于 2019-12-31 10:36:21
问题 I need to set up SSL over Active Directory. I googled a lot but could not found a decent write up about how to do this. Please if you know some good resources about this let me know. Thanks! 回答1: Sounds easy - but I ran into quite a few problems getting trusted connections with SSL working in our environment. The article was about ADAM but is just as applicable for AD. In our environment I couldn't install domain-related services like cert-server, nor act as domain-admin. I blogged about how

Class not found error when running sonarrunner

匿名 (未验证) 提交于 2019-12-03 02:38:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I am getting class not found error. The the class is not accessible through class loader and an error is being prompt when running the sonarrunner from gradle. These classes are included as dependencies in compile time in gradle and gradle build works fine. How to include these classes for sonar ? 14:53:24.322 INFO - Load module settings 14:53:24.335 INFO - Base dir: /Users/srao1/Documents/GradleTest/lds_warehouse/lds_warehouse_base 14:53:24.335 INFO - Working dir: /Users/srao1/Documents/GradleTest/lds_warehouse/build/sonar/lds_warehouse_lds

一个完整的lds文件示例

匿名 (未验证) 提交于 2019-12-03 00:36:02
/* GNU linker script for STM32F405 */ /* Specify the memory areas */ MEMORY { FLASH (rx) : ORIGIN = 0x08000000 , LENGTH = 0x100000 /* entire flash, 1 MiB */ FLASH_ISR (rx) : ORIGIN = 0x08000000 , LENGTH = 0x004000 /* sector 0, 16 KiB */ FLASH_TEXT (rx) : ORIGIN = 0x08020000 , LENGTH = 0x080000 /* sectors 5,6,7,8, 4*128KiB = 512 KiB (could increase it more) */ CCMRAM (xrw) : ORIGIN = 0x10000000 , LENGTH = 0x010000 /* 64 KiB */ RAM (xrw) : ORIGIN = 0x20000000 , LENGTH = 0x020000 /* 128 KiB */ } /* top end of the stack */ _estack = ORIGIN(RAM) + LENGTH(RAM); /* RAM extents for the garbage

Setting up SSL in Active Directory how-to

折月煮酒 提交于 2019-12-02 20:55:54
I need to set up SSL over Active Directory. I googled a lot but could not found a decent write up about how to do this. Please if you know some good resources about this let me know. Thanks! Sounds easy - but I ran into quite a few problems getting trusted connections with SSL working in our environment. The article was about ADAM but is just as applicable for AD. In our environment I couldn't install domain-related services like cert-server, nor act as domain-admin. I blogged about how I got this working a while back http://stephbu.wordpress.com/2006/11/29/using-adam-with-asp-net-2-0

[线段树系列] 线段树合并

a 夏天 提交于 2019-12-02 19:14:17
这一篇来讲讲线段树合并。 前置知识: 动态开点线段树 还是一样先给一道例题: [JOI2012] Building2 题面是日文的,这里给出中文翻译: 有 n个城市,它们组成了一棵树。 第 i 个城市有一座高度为 H i 的建筑。 你需要选择一条尽量长路径,设路径中有 k 个点, 依次分别为 i 1 , i 2 , ⋯ i k − 1 , i k, 使得路径满足 H i 1 < H i 2 < ⋯ < H i k, 这 k个点不一定要连续,求 k的最大值。 概述:求树上LIS( 最长上升子序列 ),不会求LIS也没有关系,这只是一道例题。 先来考虑朴素做法: 取出树上的所有路径,对它们分别求LIS。 可以做,但是复杂度太高,不可行。 我们发散思维,容易想到一种做法: 对于每一个点x,我们发现经过它的一条路径的LIS可以由两部分组成。 以x开头,x左边的部分路径如果是下降的,那右边就要是上升的( 值h )。 以x开头,x左边如果是上升的,右边就要是下降的。 画个图方便理解: 图中蓝色的显然就是过x的LIS 根据上面的想法,我们求出以x开头,往左的LIS=3,往右的LDS( 最长下降子序列 )=2。 以x开头,往左的LDS=1,往右的LIS=2。 我们比较两个结果( 相加-1,要把自己重复算的那一次减去 ),4和2,显然答案就是4。 现在考虑怎么实现这个想法, 刚开始

问题集锦(54-55)

♀尐吖头ヾ 提交于 2019-11-29 21:41:56
Problem 54 An example for understanding Linux initcall mechanism? Ans: 1. 源码 #include <stdio.h> /* 定义函数指针 */ typedef int (*initcall_t)(void); /* 申明外部变量 , 在 ld 的脚本文件中定义 */ extern initcall_t __initcall_start, __initcall_end; #define __initcall(fn) / static initcall_t __initcall_##fn __init_call = fn #define __init_call __attribute__ ((unused,__section__ ("function_ptrs"))) #define module_init(x) __initcall(x); /* 上述宏定义名为 "__initcall_ 函数名 " 的函数指针 , 且将函数指针放在 function_ptrs 节 这个函数指针,指向 fn(fn 函数则放在 code_segment 节中 )*/ #define __init __attribute__ ((__section__ ("code_segment"))) /* 函数放在 code_segment