• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
Aucun tag

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

BASIC compiler/interpreter for PIC32MX/MZ-80K


Commit MetaInfo

Révision46cbc3d465a44d21fcf5d1a73cce4fe436f55a6f (tree)
l'heure2019-05-13 11:55:42
AuteurKatsumi <kmorimatsu@sour...>
CommiterKatsumi

Message de Log

--no-data-init option for xc32-ld. Allow using malloc/free.

Change Summary

Modification

--- a/mips/clib/clib.c
+++ b/mips/clib/clib.c
@@ -39,7 +39,6 @@ const void* const clibdata[]={
3939 * static start address at 0xA0000100.
4040 */
4141 void* CLIBINIT clib_init(void** data){
42- char* data_mem;
4342 // Store pointer to data
4443 g_data=data;
4544 // Call user initialization routine
--- a/mips/clib/clib.h
+++ b/mips/clib/clib.h
@@ -26,6 +26,7 @@ void init(void);
2626 malloc(int size);
2727 calloc(int size);
2828 */
29+extern void** g_data;
2930 #define malloc(x) clib_calloc(((x)+3)>>2,g_data)
3031 #define calloc(x) clib_calloc(((x)+3)>>2,g_data)
3132 void* clib_calloc(int size, void** g_data);
--- a/mips/clib/clib_p32MX370F512H.ld
+++ b/mips/clib/clib_p32MX370F512H.ld
@@ -43,7 +43,7 @@
4343
4444 OUTPUT_FORMAT("elf32-tradlittlemips")
4545 OUTPUT_ARCH(pic32mx)
46-ENTRY(_reset)
46+/*ENTRY(_reset)*/
4747 /*
4848 * Provide for a minimum stack and heap size
4949 * - _min_stack_size - represents the minimum space that must be made
@@ -54,7 +54,7 @@ ENTRY(_reset)
5454 * the command line using the linker's --defsym option.
5555 */
5656 EXTERN (_min_stack_size _min_heap_size)
57-PROVIDE(_min_stack_size = 0x800) ;
57+PROVIDE(_min_stack_size = 0x000) ;
5858
5959 /*************************************************************************
6060 * Processor-specific object file. Contains SFR definitions.
@@ -102,8 +102,9 @@ _GEN_EXCPT_ADDR = _ebase_address + 0x180;
102102 *************************************************************************/
103103 MEMORY
104104 {
105- kseg0_program_mem (rx) : ORIGIN = (0x9D006000+0x1000+0x490), LENGTH = (0x20000-0x6000-0x1000-0x490)
106- kseg2_program_mem (rx) : ORIGIN = (0x9D020000), LENGTH = (0x80000-0x20000-0x1000)
105+ kseg1_data_mem (w!x) : ORIGIN = (0xA0008000-0x080), LENGTH = 0x080
106+ kseg2_program_mem (rx) : ORIGIN = (0xA0008000) , LENGTH = 0x040
107+ kseg0_program_mem (rx) : ORIGIN = (0xA0008000+0x040), LENGTH = (0x18000-0x040)
107108 kseg0_boot_mem : ORIGIN = (0x9D006000+0x1000+0x490), LENGTH = 0 /* dummy */
108109 exception_mem : ORIGIN = 0x9D006000, LENGTH = 0x1000
109110 kseg1_boot_mem : ORIGIN = (0x9D006000+0x1000), LENGTH = 0x490
@@ -112,7 +113,6 @@ MEMORY
112113 config2 : ORIGIN = 0xBFC02FF4, LENGTH = 0x4
113114 config1 : ORIGIN = 0xBFC02FF8, LENGTH = 0x4
114115 config0 : ORIGIN = 0xBFC02FFC, LENGTH = 0x4
115- kseg1_data_mem (w!x) : ORIGIN = 0xA0000000, LENGTH = 0x20000
116116 sfrs : ORIGIN = 0xBF800000, LENGTH = 0x100000
117117 configsfrs : ORIGIN = 0xBFC02FF0, LENGTH = 0x10
118118 }
@@ -123,7 +123,7 @@ MEMORY
123123
124124 SECTIONS
125125 {
126- .machikania_object : {
126+ .machikania_clib : {
127127 KEEP(*(.machikania_clib))
128128 } > kseg2_program_mem
129129 }
@@ -149,353 +149,6 @@ SECTIONS
149149 }
150150 SECTIONS
151151 {
152- /* Boot Sections */
153- .reset _RESET_ADDR :
154- {
155- KEEP(*(.reset))
156- KEEP(*(.reset.startup))
157- } > kseg1_boot_mem
158- .bev_excpt _BEV_EXCPT_ADDR :
159- {
160- KEEP(*(.bev_handler))
161- } > kseg1_boot_mem
162- /* Debug exception vector */
163- .dbg_excpt _DBG_EXCPT_ADDR (NOLOAD) :
164- {
165- . += (DEFINED (_DEBUGGER) ? 0x8 : 0x0);
166- } > kseg1_boot_mem
167- /* Space reserved for the debug executive */
168- .dbg_code _DBG_CODE_ADDR (NOLOAD) :
169- {
170- . += (DEFINED (_DEBUGGER) ? _DBG_CODE_SIZE : 0x0);
171- } > debug_exec_mem
172-
173- .app_excpt _GEN_EXCPT_ADDR :
174- {
175- KEEP(*(.gen_handler))
176- } > exception_mem
177-
178- .vector_0 _ebase_address + 0x200 + ((_vector_spacing << 5) * 0) :
179- {
180- KEEP(*(.vector_0))
181- } > exception_mem
182- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_0) <= (_vector_spacing << 5), "function at exception vector 0 too large")
183- .vector_1 _ebase_address + 0x200 + ((_vector_spacing << 5) * 1) :
184- {
185- KEEP(*(.vector_1))
186- } > exception_mem
187- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_1) <= (_vector_spacing << 5), "function at exception vector 1 too large")
188- .vector_2 _ebase_address + 0x200 + ((_vector_spacing << 5) * 2) :
189- {
190- KEEP(*(.vector_2))
191- } > exception_mem
192- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_2) <= (_vector_spacing << 5), "function at exception vector 2 too large")
193- .vector_3 _ebase_address + 0x200 + ((_vector_spacing << 5) * 3) :
194- {
195- KEEP(*(.vector_3))
196- } > exception_mem
197- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_3) <= (_vector_spacing << 5), "function at exception vector 3 too large")
198- .vector_4 _ebase_address + 0x200 + ((_vector_spacing << 5) * 4) :
199- {
200- KEEP(*(.vector_4))
201- } > exception_mem
202- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_4) <= (_vector_spacing << 5), "function at exception vector 4 too large")
203- .vector_5 _ebase_address + 0x200 + ((_vector_spacing << 5) * 5) :
204- {
205- KEEP(*(.vector_5))
206- } > exception_mem
207- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_5) <= (_vector_spacing << 5), "function at exception vector 5 too large")
208- .vector_6 _ebase_address + 0x200 + ((_vector_spacing << 5) * 6) :
209- {
210- KEEP(*(.vector_6))
211- } > exception_mem
212- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_6) <= (_vector_spacing << 5), "function at exception vector 6 too large")
213- .vector_7 _ebase_address + 0x200 + ((_vector_spacing << 5) * 7) :
214- {
215- KEEP(*(.vector_7))
216- } > exception_mem
217- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_7) <= (_vector_spacing << 5), "function at exception vector 7 too large")
218- .vector_8 _ebase_address + 0x200 + ((_vector_spacing << 5) * 8) :
219- {
220- KEEP(*(.vector_8))
221- } > exception_mem
222- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_8) <= (_vector_spacing << 5), "function at exception vector 8 too large")
223- .vector_9 _ebase_address + 0x200 + ((_vector_spacing << 5) * 9) :
224- {
225- KEEP(*(.vector_9))
226- } > exception_mem
227- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_9) <= (_vector_spacing << 5), "function at exception vector 9 too large")
228- .vector_10 _ebase_address + 0x200 + ((_vector_spacing << 5) * 10) :
229- {
230- KEEP(*(.vector_10))
231- } > exception_mem
232- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_10) <= (_vector_spacing << 5), "function at exception vector 10 too large")
233- .vector_11 _ebase_address + 0x200 + ((_vector_spacing << 5) * 11) :
234- {
235- KEEP(*(.vector_11))
236- } > exception_mem
237- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_11) <= (_vector_spacing << 5), "function at exception vector 11 too large")
238- .vector_12 _ebase_address + 0x200 + ((_vector_spacing << 5) * 12) :
239- {
240- KEEP(*(.vector_12))
241- } > exception_mem
242- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_12) <= (_vector_spacing << 5), "function at exception vector 12 too large")
243- .vector_13 _ebase_address + 0x200 + ((_vector_spacing << 5) * 13) :
244- {
245- KEEP(*(.vector_13))
246- } > exception_mem
247- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_13) <= (_vector_spacing << 5), "function at exception vector 13 too large")
248- .vector_14 _ebase_address + 0x200 + ((_vector_spacing << 5) * 14) :
249- {
250- KEEP(*(.vector_14))
251- } > exception_mem
252- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_14) <= (_vector_spacing << 5), "function at exception vector 14 too large")
253- .vector_15 _ebase_address + 0x200 + ((_vector_spacing << 5) * 15) :
254- {
255- KEEP(*(.vector_15))
256- } > exception_mem
257- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_15) <= (_vector_spacing << 5), "function at exception vector 15 too large")
258- .vector_16 _ebase_address + 0x200 + ((_vector_spacing << 5) * 16) :
259- {
260- KEEP(*(.vector_16))
261- } > exception_mem
262- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_16) <= (_vector_spacing << 5), "function at exception vector 16 too large")
263- .vector_17 _ebase_address + 0x200 + ((_vector_spacing << 5) * 17) :
264- {
265- KEEP(*(.vector_17))
266- } > exception_mem
267- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_17) <= (_vector_spacing << 5), "function at exception vector 17 too large")
268- .vector_18 _ebase_address + 0x200 + ((_vector_spacing << 5) * 18) :
269- {
270- KEEP(*(.vector_18))
271- } > exception_mem
272- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_18) <= (_vector_spacing << 5), "function at exception vector 18 too large")
273- .vector_19 _ebase_address + 0x200 + ((_vector_spacing << 5) * 19) :
274- {
275- KEEP(*(.vector_19))
276- } > exception_mem
277- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_19) <= (_vector_spacing << 5), "function at exception vector 19 too large")
278- .vector_20 _ebase_address + 0x200 + ((_vector_spacing << 5) * 20) :
279- {
280- KEEP(*(.vector_20))
281- } > exception_mem
282- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_20) <= (_vector_spacing << 5), "function at exception vector 20 too large")
283- .vector_21 _ebase_address + 0x200 + ((_vector_spacing << 5) * 21) :
284- {
285- KEEP(*(.vector_21))
286- } > exception_mem
287- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_21) <= (_vector_spacing << 5), "function at exception vector 21 too large")
288- .vector_22 _ebase_address + 0x200 + ((_vector_spacing << 5) * 22) :
289- {
290- KEEP(*(.vector_22))
291- } > exception_mem
292- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_22) <= (_vector_spacing << 5), "function at exception vector 22 too large")
293- .vector_23 _ebase_address + 0x200 + ((_vector_spacing << 5) * 23) :
294- {
295- KEEP(*(.vector_23))
296- } > exception_mem
297- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_23) <= (_vector_spacing << 5), "function at exception vector 23 too large")
298- .vector_24 _ebase_address + 0x200 + ((_vector_spacing << 5) * 24) :
299- {
300- KEEP(*(.vector_24))
301- } > exception_mem
302- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_24) <= (_vector_spacing << 5), "function at exception vector 24 too large")
303- .vector_25 _ebase_address + 0x200 + ((_vector_spacing << 5) * 25) :
304- {
305- KEEP(*(.vector_25))
306- } > exception_mem
307- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_25) <= (_vector_spacing << 5), "function at exception vector 25 too large")
308- .vector_26 _ebase_address + 0x200 + ((_vector_spacing << 5) * 26) :
309- {
310- KEEP(*(.vector_26))
311- } > exception_mem
312- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_26) <= (_vector_spacing << 5), "function at exception vector 26 too large")
313- .vector_27 _ebase_address + 0x200 + ((_vector_spacing << 5) * 27) :
314- {
315- KEEP(*(.vector_27))
316- } > exception_mem
317- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_27) <= (_vector_spacing << 5), "function at exception vector 27 too large")
318- .vector_28 _ebase_address + 0x200 + ((_vector_spacing << 5) * 28) :
319- {
320- KEEP(*(.vector_28))
321- } > exception_mem
322- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_28) <= (_vector_spacing << 5), "function at exception vector 28 too large")
323- .vector_29 _ebase_address + 0x200 + ((_vector_spacing << 5) * 29) :
324- {
325- KEEP(*(.vector_29))
326- } > exception_mem
327- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_29) <= (_vector_spacing << 5), "function at exception vector 29 too large")
328- .vector_30 _ebase_address + 0x200 + ((_vector_spacing << 5) * 30) :
329- {
330- KEEP(*(.vector_30))
331- } > exception_mem
332- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_30) <= (_vector_spacing << 5), "function at exception vector 30 too large")
333- .vector_31 _ebase_address + 0x200 + ((_vector_spacing << 5) * 31) :
334- {
335- KEEP(*(.vector_31))
336- } > exception_mem
337- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_31) <= (_vector_spacing << 5), "function at exception vector 31 too large")
338- .vector_32 _ebase_address + 0x200 + ((_vector_spacing << 5) * 32) :
339- {
340- KEEP(*(.vector_32))
341- } > exception_mem
342- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_32) <= (_vector_spacing << 5), "function at exception vector 32 too large")
343- .vector_33 _ebase_address + 0x200 + ((_vector_spacing << 5) * 33) :
344- {
345- KEEP(*(.vector_33))
346- } > exception_mem
347- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_33) <= (_vector_spacing << 5), "function at exception vector 33 too large")
348- .vector_34 _ebase_address + 0x200 + ((_vector_spacing << 5) * 34) :
349- {
350- KEEP(*(.vector_34))
351- } > exception_mem
352- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_34) <= (_vector_spacing << 5), "function at exception vector 34 too large")
353- .vector_35 _ebase_address + 0x200 + ((_vector_spacing << 5) * 35) :
354- {
355- KEEP(*(.vector_35))
356- } > exception_mem
357- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_35) <= (_vector_spacing << 5), "function at exception vector 35 too large")
358- .vector_36 _ebase_address + 0x200 + ((_vector_spacing << 5) * 36) :
359- {
360- KEEP(*(.vector_36))
361- } > exception_mem
362- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_36) <= (_vector_spacing << 5), "function at exception vector 36 too large")
363- .vector_37 _ebase_address + 0x200 + ((_vector_spacing << 5) * 37) :
364- {
365- KEEP(*(.vector_37))
366- } > exception_mem
367- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_37) <= (_vector_spacing << 5), "function at exception vector 37 too large")
368- .vector_38 _ebase_address + 0x200 + ((_vector_spacing << 5) * 38) :
369- {
370- KEEP(*(.vector_38))
371- } > exception_mem
372- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_38) <= (_vector_spacing << 5), "function at exception vector 38 too large")
373- .vector_39 _ebase_address + 0x200 + ((_vector_spacing << 5) * 39) :
374- {
375- KEEP(*(.vector_39))
376- } > exception_mem
377- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_39) <= (_vector_spacing << 5), "function at exception vector 39 too large")
378- .vector_40 _ebase_address + 0x200 + ((_vector_spacing << 5) * 40) :
379- {
380- KEEP(*(.vector_40))
381- } > exception_mem
382- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_40) <= (_vector_spacing << 5), "function at exception vector 40 too large")
383- .vector_41 _ebase_address + 0x200 + ((_vector_spacing << 5) * 41) :
384- {
385- KEEP(*(.vector_41))
386- } > exception_mem
387- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_41) <= (_vector_spacing << 5), "function at exception vector 41 too large")
388- .vector_42 _ebase_address + 0x200 + ((_vector_spacing << 5) * 42) :
389- {
390- KEEP(*(.vector_42))
391- } > exception_mem
392- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_42) <= (_vector_spacing << 5), "function at exception vector 42 too large")
393- .vector_43 _ebase_address + 0x200 + ((_vector_spacing << 5) * 43) :
394- {
395- KEEP(*(.vector_43))
396- } > exception_mem
397- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_43) <= (_vector_spacing << 5), "function at exception vector 43 too large")
398- .vector_44 _ebase_address + 0x200 + ((_vector_spacing << 5) * 44) :
399- {
400- KEEP(*(.vector_44))
401- } > exception_mem
402- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_44) <= (_vector_spacing << 5), "function at exception vector 44 too large")
403- .vector_45 _ebase_address + 0x200 + ((_vector_spacing << 5) * 45) :
404- {
405- KEEP(*(.vector_45))
406- } > exception_mem
407- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_45) <= (_vector_spacing << 5), "function at exception vector 45 too large")
408- .vector_46 _ebase_address + 0x200 + ((_vector_spacing << 5) * 46) :
409- {
410- KEEP(*(.vector_46))
411- } > exception_mem
412- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_46) <= (_vector_spacing << 5), "function at exception vector 46 too large")
413- .vector_47 _ebase_address + 0x200 + ((_vector_spacing << 5) * 47) :
414- {
415- KEEP(*(.vector_47))
416- } > exception_mem
417- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_47) <= (_vector_spacing << 5), "function at exception vector 47 too large")
418- .vector_48 _ebase_address + 0x200 + ((_vector_spacing << 5) * 48) :
419- {
420- KEEP(*(.vector_48))
421- } > exception_mem
422- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_48) <= (_vector_spacing << 5), "function at exception vector 48 too large")
423- .vector_49 _ebase_address + 0x200 + ((_vector_spacing << 5) * 49) :
424- {
425- KEEP(*(.vector_49))
426- } > exception_mem
427- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_49) <= (_vector_spacing << 5), "function at exception vector 49 too large")
428- .vector_50 _ebase_address + 0x200 + ((_vector_spacing << 5) * 50) :
429- {
430- KEEP(*(.vector_50))
431- } > exception_mem
432- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_50) <= (_vector_spacing << 5), "function at exception vector 50 too large")
433- .vector_51 _ebase_address + 0x200 + ((_vector_spacing << 5) * 51) :
434- {
435- KEEP(*(.vector_51))
436- } > exception_mem
437- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_51) <= (_vector_spacing << 5), "function at exception vector 51 too large")
438- .vector_52 _ebase_address + 0x200 + ((_vector_spacing << 5) * 52) :
439- {
440- KEEP(*(.vector_52))
441- } > exception_mem
442- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_52) <= (_vector_spacing << 5), "function at exception vector 52 too large")
443- .vector_53 _ebase_address + 0x200 + ((_vector_spacing << 5) * 53) :
444- {
445- KEEP(*(.vector_53))
446- } > exception_mem
447- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_53) <= (_vector_spacing << 5), "function at exception vector 53 too large")
448- .vector_54 _ebase_address + 0x200 + ((_vector_spacing << 5) * 54) :
449- {
450- KEEP(*(.vector_54))
451- } > exception_mem
452- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_54) <= (_vector_spacing << 5), "function at exception vector 54 too large")
453- .vector_55 _ebase_address + 0x200 + ((_vector_spacing << 5) * 55) :
454- {
455- KEEP(*(.vector_55))
456- } > exception_mem
457- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_55) <= (_vector_spacing << 5), "function at exception vector 55 too large")
458- .vector_56 _ebase_address + 0x200 + ((_vector_spacing << 5) * 56) :
459- {
460- KEEP(*(.vector_56))
461- } > exception_mem
462- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_56) <= (_vector_spacing << 5), "function at exception vector 56 too large")
463- .vector_57 _ebase_address + 0x200 + ((_vector_spacing << 5) * 57) :
464- {
465- KEEP(*(.vector_57))
466- } > exception_mem
467- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_57) <= (_vector_spacing << 5), "function at exception vector 57 too large")
468- .vector_58 _ebase_address + 0x200 + ((_vector_spacing << 5) * 58) :
469- {
470- KEEP(*(.vector_58))
471- } > exception_mem
472- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_58) <= (_vector_spacing << 5), "function at exception vector 58 too large")
473- .vector_59 _ebase_address + 0x200 + ((_vector_spacing << 5) * 59) :
474- {
475- KEEP(*(.vector_59))
476- } > exception_mem
477- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_59) <= (_vector_spacing << 5), "function at exception vector 59 too large")
478- .vector_60 _ebase_address + 0x200 + ((_vector_spacing << 5) * 60) :
479- {
480- KEEP(*(.vector_60))
481- } > exception_mem
482- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_60) <= (_vector_spacing << 5), "function at exception vector 60 too large")
483- .vector_61 _ebase_address + 0x200 + ((_vector_spacing << 5) * 61) :
484- {
485- KEEP(*(.vector_61))
486- } > exception_mem
487- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_61) <= (_vector_spacing << 5), "function at exception vector 61 too large")
488- .vector_62 _ebase_address + 0x200 + ((_vector_spacing << 5) * 62) :
489- {
490- KEEP(*(.vector_62))
491- } > exception_mem
492- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_62) <= (_vector_spacing << 5), "function at exception vector 62 too large")
493- .vector_63 _ebase_address + 0x200 + ((_vector_spacing << 5) * 63) :
494- {
495- KEEP(*(.vector_63))
496- } > exception_mem
497- ASSERT (_vector_spacing == 0 || SIZEOF(.vector_63) <= (_vector_spacing << 5), "function at exception vector 63 too large")
498-
499152 /* The startup code is in the .reset.startup section.
500153 * Keep this here for backwards compatibility with older
501154 * C32 v1.xx releases.
--- a/mips/clib/example.c
+++ b/mips/clib/example.c
@@ -26,6 +26,8 @@ char* test_private(int param1){
2626 }
2727 }
2828 char* test_public(int param1){
29+ void* test=malloc(16);
30+ free(test);
2931 return test_private(param1);
3032 }
3133
--- a/mips/clib/nbproject/Makefile-default.mk
+++ b/mips/clib/nbproject/Makefile-default.mk
@@ -144,12 +144,12 @@ endif
144144 ifeq ($(TYPE_IMAGE), DEBUG_RUN)
145145 dist/${CND_CONF}/${IMAGE_TYPE}/clib.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk clib_p32MX370F512H.ld
146146 @${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE}
147- ${MP_CC} $(MP_EXTRA_LD_PRE) -mdebugger -D__MPLAB_DEBUGGER_SIMULATOR=1 -mprocessor=$(MP_PROCESSOR_OPTION) -nostdlib -o dist/${CND_CONF}/${IMAGE_TYPE}/clib.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1,-D=__DEBUG_D,--defsym=__MPLAB_DEBUGGER_SIMULATOR=1,--gc-sections,--no-code-in-dinit,--no-dinit-in-serial-mem,-Map="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map",--memorysummary,dist/${CND_CONF}/${IMAGE_TYPE}/memoryfile.xml
147+ ${MP_CC} $(MP_EXTRA_LD_PRE) -mdebugger -D__MPLAB_DEBUGGER_SIMULATOR=1 -mprocessor=$(MP_PROCESSOR_OPTION) -nostdlib -o dist/${CND_CONF}/${IMAGE_TYPE}/clib.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1,-D=__DEBUG_D,--defsym=__MPLAB_DEBUGGER_SIMULATOR=1,--gc-sections,--no-code-in-dinit,--no-dinit-in-serial-mem,-Map="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map",--memorysummary,dist/${CND_CONF}/${IMAGE_TYPE}/memoryfile.xml,--no-data-init
148148
149149 else
150150 dist/${CND_CONF}/${IMAGE_TYPE}/clib.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk clib_p32MX370F512H.ld
151151 @${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE}
152- ${MP_CC} $(MP_EXTRA_LD_PRE) -mprocessor=$(MP_PROCESSOR_OPTION) -nostdlib -o dist/${CND_CONF}/${IMAGE_TYPE}/clib.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--gc-sections,--no-code-in-dinit,--no-dinit-in-serial-mem,-Map="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map",--memorysummary,dist/${CND_CONF}/${IMAGE_TYPE}/memoryfile.xml
152+ ${MP_CC} $(MP_EXTRA_LD_PRE) -mprocessor=$(MP_PROCESSOR_OPTION) -nostdlib -o dist/${CND_CONF}/${IMAGE_TYPE}/clib.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--gc-sections,--no-code-in-dinit,--no-dinit-in-serial-mem,-Map="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map",--memorysummary,dist/${CND_CONF}/${IMAGE_TYPE}/memoryfile.xml,--no-data-init
153153 ${MP_CC_DIR}\\xc32-bin2hex dist/${CND_CONF}/${IMAGE_TYPE}/clib.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}
154154 endif
155155
--- a/mips/clib/nbproject/Makefile-genesis.properties
+++ b/mips/clib/nbproject/Makefile-genesis.properties
@@ -1,8 +1,8 @@
11 #
2-#Sat May 11 21:49:04 PDT 2019
2+#Sun May 12 18:25:29 PDT 2019
33 default.com-microchip-mplab-nbide-toolchainXC32-XC32LanguageToolchain.md5=f2639e8ffe4e3a80ef2cdaeba61da340
44 default.languagetoolchain.dir=C\:\\Program Files\\Microchip\\xc32\\v1.42\\bin
5-configurations-xml=29d1a0ced33e84be2829a6567fb2a455
5+configurations-xml=d396d647be909bd57511217de4e29ec7
66 com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=52742b11d992fb0dd234edfb95066b34
77 default.languagetoolchain.version=1.42
88 host.platform=windows
--- a/mips/clib/nbproject/configurations.xml
+++ b/mips/clib/nbproject/configurations.xml
@@ -150,6 +150,7 @@
150150 <property key="symbol-stripping" value=""/>
151151 <property key="trace-symbols" value=""/>
152152 <property key="warn-section-align" value="false"/>
153+ <appendMe value="--no-data-init"/>
153154 </C32-LD>
154155 <C32CPP>
155156 <property key="additional-warnings" value="false"/>